这是一个例子
$ cat main.js
App = {
version : 1.1
};
require('./mymod.js');
$ cat mymod.js
console.log(App.version);
$ node main.js
1.1
请注意我如何App
在 main.js 中声明而没有var
. 这使我无需致电即可访问App
。如果我用 a声明,这将不起作用。mymod.js
require
App
var
我想了解为什么会这样?它是 node.js 的预期行为还是错误?这种行为是否符合 ECMAScript 或 CommonJS 标准?
这个技巧提供了一个强大的机制来绕过require
node.js 的模块系统。在每个文件中定义您的对象并将它们添加到顶级App
命名空间。您在其他文件中的代码将自动访问这些对象。我错过了什么?