这是我的代码
var a=1;
console.log(global.a);
console.log(this.a);
同时打印undefined
。并且表明a
不属于global
或this
(当前模块)。
我想知道a
var属于哪个对象。
答案 0 :(得分:4)
要了解这一点,您需要了解Node.js中的模块包装器。
Node.js运行的所有JavaScript代码不是直接运行,而是由Node内部调用的函数调用包装。
模块包装器:
(function (exports, require, module, __filename, __dirname) {
// You code goes here
});
实际运行的代码是:
(function (exports, require, module, __filename, __dirname) {
var a=1;
console.log(global.a);
console.log(this.a);
});
因此var a
属于匿名函数的范围,不属于global
对象的一部分,也不属于this
的一部分(因为此函数未与任何对象(即Function)一起调用.prototype .call(null))