Titanium.include VS require
作者:佚名
社區(qū)有同學(xué)問到Ti.include和require的不同?偶嘗試在這里加以解釋,歡迎同學(xué)們拍磚。 其實(shí),這兩個方法除了看上去都是包含一個JS文件之外, 再也沒有相似之處了。
Ti.include(String name)
- 有Ti命名命名空間限定,表示是Titanium模塊中的函數(shù)。
- JavaScript解釋器在當(dāng)前根上下文環(huán)境中解釋所包含的JS文件,換句話說:被包含的文件有可能破壞當(dāng)前的全局變量,如果有變量名或函數(shù)名相同,因此慎用。根上下文環(huán)境指的是類似于傳統(tǒng)Web開發(fā)中Window對象。注意:Titanium Mobile中根上下文環(huán)境存在于app.js文件和window的url屬性指定的JS文件。
require(String moduleId)
- 全局函數(shù),無需命名空間限定直接調(diào)用。
- require函數(shù)設(shè)計意圖是遵從CommoJS規(guī)范,使JS應(yīng)用更加模塊(module)化,使模塊相對獨(dú)立。一個被require的JS文件稱之為一個模塊(module),模塊變量和函數(shù)都是私有的,不能互相訪問,除非通過exports對象暴露出來。
- Titanium的require函數(shù)有兩種用法,所導(dǎo)入的模塊都遵從上面所講的CommoJS規(guī)范。
- 1、導(dǎo)入項(xiàng)目中一個JS模塊(其實(shí)是一個JS文件),比如var mainWindow =require('ui/MainWindow');
- 2、導(dǎo)入一個原生模塊(Native Module),比如var module = require('com.mycompany.module');
責(zé)任編輯:佚名
來源:
移動Web開發(fā)者社區(qū)