一尘不染

在node.js中存储模块变量的范围是什么?

node.js

当我在node.js模块中执行此操作时:

var abc = '123';

去哪儿了?我的意思是:在浏览器中window.abc(如果未在函数中执行或以其他方式执行)

如果我执行此操作:

abc = '123';

然后可以在中找到它global.abc,但这不是我想要的。


阅读 309

收藏
2020-07-07

共1个答案

一尘不染

与浏览器不同,浏览器默认情况下将变量分配给全局空间(即窗口),而在Node中, 除非您 将变量 明确 分配给module.exports, 否则
变量的作用域为模块(文件)。

实际上,当您运行node myfile.jsrequire('somefile.js')文件中的代码包装如下时:

(function (exports, require, module, __filename, __dirname) {
     // your code is here
});
2020-07-07