我不确定以下任何一种是否被认为是更好的做法。
环境: Appcelerator Titanium/Alloy,这是一个用于制作 native 应用程序的框架。它使用 javascript 作为源,与 node.js 相当(更像 CommonJS)。
情况1:
我使用的许多文件:
var localInstance = require('main/module/sub/foobar')({ initialize: true});
情况2:
我将在其中创建全局的主文件:
Globalnamespace.foobar = require('main/module/sub/foobar');
在其他文件中:
var localInstanceWhichINeed = Globalnamespace.foobar({initialize: false});
重点是该模块并不是到处都需要的,将其放在全局命名空间中可能会占用不必要的内存。每个 foobar 模块都需要在每个文件中实例化,因此不存在全局实例(只有一个模块来创建实例)。
我正在谈论移动设备内存,我正在尝试减少它。因此就有了这个问题。
最佳答案
我不是对此做出回应的最佳人选。但是,我调查了同样的问题,因此有一些见解可以帮助您;-)
CommonJS 模块的工作方式是在您第一次引用它们时加载它们。因此,后续转介的成本非常低。所以我想说,这更多的是一个“味道”的问题。就我个人而言,我倾向于使用您提到的第一种方法,即。像这样的东西:
var UiHelper = require('ui/helper);
:
:
UiHelper.showListBox(.....);
回到你的问题 - 我不认为使用其中之一会受到惩罚。更多的是关于您想要如何构建代码;-)
/约翰
关于javascript - Titanium (Node.js) require() 与 Global,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988639/