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?

questionAnswers(4)

yourAnswerToTheQuestion