У меня есть файл 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
в области видимости функций и почему он не вводит его в область видимости модуля?