У меня есть файл 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"
);
Мой вопрос: this в var a = this; - пустой объект, тогда как операторы this в функциях являются тенями глобального объекта node.js. Я знаю, что ключевое слово this отличается от функций, но я не мог понять, почему первая this не равна глобальным, а this в функциях равна глобальным.
Как node.js вводят global в this в области видимости функций и почему он не вводит его в область видимости модуля?