全局与本地 for commonjs 内存钛

Global vs local for commonjs memory titanium

本文关键字:commonjs 内存 for 全局      更新时间:2023-09-26

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

我的测试.js是这样的

//test.js
function textField(){
     this.view = Ti.UI.createView();
     this.view.add(this.textField = Ti.UI.createTextField());
 }
 module.exports = textField;

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

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

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

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

按照您首次需要模块或文件时提供的第二个示例进行操作,方法是使用

require('foo')

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