节点.js中的模块范围
Module scope in Node.js
我很难弄清楚以下模块范围如何在node.js中工作。
主.js
module.exports = App = {
add: function(a, b) {
return a + b;
}
}
var getNumber = require('./module');
var result = App.add(100, getNumber());
模块.js
var number = 200;
module.exports = function () {
console.log(App); // App is visible here - how come?
return number;
};
我想知道为什么应用程序在模块中可见,因为它不是必需的。如果我不再导出应用程序,它将不可见。
由于您没有声明var App
,App
隐式地成为全局变量。即使您根本没有module.exports
,也会发生这种情况。
App
在全局范围内:
foo = {}
foo.bar = baz = 5
console.log(baz)
// baz is available on the global scope
相关文章:
- 为什么在javascript中的模块模式中实现Lazy函数时范围会发生变化
- 节点模块对象范围:在所有函数之间共享一个对象
- 将 NodeJS 模块范围变量作为对象访问
- 节点.js中的模块范围
- 从脚本标记的全局范围调用webpack模块中的函数
- webpack在全局范围内执行模块
- 请求节点模块变量范围
- AngularJS需要JS浏览器化和Javascript模块/全局范围的噩梦
- 角度访问模块范围从工厂
- 将模块范围限制为请求(使用“需要”、“节点.js”)
- JavaScript 模块模式变量范围
- 推荐在 javascript 模块中限定私有成员范围的方法
- 模块模式中变量的范围
- Javascript模块模式、范围和“;这个“;
- Javascript模块模式-失去了这个范围
- 揭示模块模式&变量范围->异步调用返回后未定义公共对象
- Angularjs模块范围常量的最佳实践
- 模块模式:设置模块范围的阵列
- 模块范围内的全局变量
- 核心javascript模块范围