Significado de "esto" en los módulos y funciones de node.js

Tengo un archivo JavaScript que es cargado 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"
);

Mi pregunta es:this en vara = this; es un objeto vacío mientras quethis Las declaraciones en funciones son sombras del objeto global node.js. Lo séthis la palabra clave es diferente en funciones pero no pude entender por qué primerothis no es igual a global ythis en funciones es igual a global.

¿Cómo inyecta node.js?global athis en ámbitos de función, y ¿por qué no lo inyecta al ámbito del módulo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta