我有一个JavaScript文件,加载require
次.
// loaded by require()
var a = this; // "this" is an empty object
this.anObject = {name:"An object"};
var aFunction = function() {
var innerThis = this; // "this" is node global object
};
aFunction();
(function(anyParameter){
console.log(anyParameter.anObject);
})(
this // "this" is same having anObject. Not "global"
);
我的问题是:var a = this;
中的this
是空对象,而函数中的this
条语句是 node 的阴影.js全局对象.我知道this
关键字在函数中是不同的,但我不明白为什么第一个this
不等于全局,而函数中的this
等于全局.
node 是如何工作的.js在函数范围内注入global
到this
,为什么不将其注入模块范围?