Javascript commonjs内存的全局与本地

Javascript commonjs内存的全局与本地,javascript,titanium,Javascript,Titanium,我在Tianium 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; 还是我应该这样做

我在Tianium 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

function textField(){

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

 module.exports = textField;
我的test.js是这样的

//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

function textField(){

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

 module.exports = textField;

避免在任何时候填充全局范围。在编写commonJS模式时,请确保您是模块化的,并且始终保护全局范围

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

var controller = require('/controller');
controller.loadApp();
这使得填充全局范围变得非常困难

遵循您提供的第二个示例,这是第一次使用

require('foo')

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

我这样做了,跳过的帧显著减少。谢谢