这是一个例子
$ cat main.js
App = {
version : 1.1
};
require('./mymod.js');
$ cat mymod.js
console.log(App.version);
$ node main.js
1.1
Run Code Online (Sandbox Code Playgroud)
请注意我App在main.js中如何声明var.这让我访问App从mymod.js不用打电话require.如果我App用a 声明var,这将无效.
我想明白为什么会这样?它是node.js或bug的预期行为吗?这种行为是否与ECMAScript或CommonJS标准一致?
这个技巧提供了一种强大的机制来规避requirenode.js 的模块系统.在每个文件中定义您的对象并将它们添加到顶级App命名空间.您在其他文件中的代码将自动访问这些对象.我错过了什么?