Significado de "this" nos módulos e funções do node.js.
Eu tenho um arquivo JavaScript carregado porrequire
.
// 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"
);
Minha pergunta é:this
em vara = this;
é um objeto vazio enquantothis
instruções em funções são sombras do objeto global node.js. eu seithis
palavra-chave é diferente em funções, mas eu não conseguia entender por que primeirothis
não é igual a global ethis
em funções é igual a global.
Como o node.js injetaglobal
parathis
nos escopos de função e por que não o injeta no escopo do módulo?