jcz*_*lew 3 javascript node.js
导出具有其他依赖关系的模块时,最好是在模块导出函数中还是在模块导出函数之外包含该依赖关系?我通常会看到后者,但似乎最好将它保留在本地范围内.
例如:
var foo = require('foo');
module.exports = function(d) {
return foo(d)/2;
}
Run Code Online (Sandbox Code Playgroud)
与
module.exports = function(d) {
var foo = require('foo');
return foo(d)/2;
}
Run Code Online (Sandbox Code Playgroud)
只有在节点中的其他模块上可以访问module.exports并global可以访问的内容.与浏览器不同,var创建本地引用.引用节点的文档:
在浏览器中,顶级范围是全局范围.这意味着在浏览器中,如果您在全局范围内,var会定义一个全局变量.在Node中,这是不同的.顶级范围不是全球范围;
var somethingNode模块内部将是该模块的本地模块.
这两个版本之间的差异是最小的,因此-第一招在局部范围内查找,而另一个命中require.cache每次调用函数时.从我所看到的节点代码来看,前者(var someVar = require('something');)似乎是首选.