此处的另一篇文章解释说," Node将模块的代码包装成一个函数"并给出了解释" https://nodejs.org/api/modules.html#modules_the_module_wrapper"
但我仍然感到困惑,我有以下片段:
var n = 'my'
module.a='k'
console.log(module.a);
console.log(module.n);
使用nodejs打印出
k
undefined
问题:如果脚本级变量如' n'绑定到nodejs" module"的功能范围,为什么' module.n'不存在吗?
感谢。
答案 0 :(得分:2)
如果您将代码和包装函数放在同一张图片中,那么您将获得它:
(function (exports, require, module, __filename, __dirname) {
var n = 'my'
module.a='k'
console.log(module.a); // k
console.log(module.n); // undefined
});
您发现module.n
未定义,因为没有为其设置值的代码行。
没有任何魔法可以导致脚本级变量,例如' n'绑定到'模块'"。