Definición de una versión independiente de implementación del objeto global en JavaScript
Estoy tratando de definir laglobal
objeto en JavaScript en una sola línea de la siguiente manera:
var global = this.global || this;
La declaración anterior está en el alcance global. Por lo tanto, en los navegadores, lathis
puntero es un alias para elwindow
objeto. Suponiendo que es la primera línea de JavaScript que se ejecuta en el contexto de la página web actual, el valor deglobal
siempre será el mismo que elthis
puntero o elwindow
objeto.
mplementaciones de @In CommonJS, como RingoJS y node.js, lathis
puntero apunta a la @ actuModuleScope
. Sin embargo, podemos acceder a laglobal
objeto a través de la propiedadglobal
definido en elModuleScope
. Por lo tanto, podemos acceder a través dethis.global
propiedad
Por lo tanto, este fragmento de código funciona en todos los navegadores y al menos en RingoJS y node.js, pero no he probado otras implementaciones de CommomJS. Por lo tanto, me gustaría saber si este código no arrojará resultados correctos cuando se ejecute en cualquier otra implementación de CommonJS, y si es así, cómo puedo solucionarlo.
Finalmente, tengo la intención de usarlo en una expresión lambda para mi marco de implementación de JavaScript independiente de la siguiente manera (idea de jQuery):
(function (global) {
// javascript framework
})(this.global || this);