全球vs本地的commonjs记忆钛

时间:2015-01-30 02:06:53

标签: javascript titanium

我在Titanium studio中为每个页面重复了一个代码,所以我应该在每个页面或全局范围内声明它吗?

像这样。

//app.js
test = require('test');

//page1.js
test= new test();
view.add(test.view);

exports.view = view;

//page2.js
test = new test();
view.add(test.view);
exports.view = view;

或者我应该这样做

//app.js


//page1.js
var test = require('test');
view.add(test.view);
exports.view = view;

//page2.js
var test = require('test');
view.add(test.view);
exports.view = view;

我的test.js是这样的

//test.js

function textField(){

     this.view = Ti.UI.createView();
     this.view.add(this.textField = Ti.UI.createTextField());
 }

 module.exports = textField;

1 个答案:

答案 0 :(得分:0)

始终避免填充全局范围。当您使用commonJS模式编写时,请确保您是模块化的并始终保护全局范围。

我总是使用App.js来引用控制器文件,例如。

var controller = require('/controller');
controller.loadApp();

这使得填充全球范围变得非常困难。

按照您提供的第二个示例,第一次使用

需要模块或文件
require('foo')

它被放入应用程序内存,如果另一个页面或选项卡调用相同的需要访问它它不会重新加载它,它只是更改指向该文件的指针,允许访问所有它的功能例如你的textField功能。