variable scripts paginas nodejs globales entre javascript global-variables

scripts - variables globales javascript entre paginas



¿Cómo declarar una variable global en JavaScript? (6)

¿Cómo puedo declarar una variable global en JavaScript?


Aquí hay un ejemplo básico de una variable global a la que pueden acceder el resto de sus funciones. Aquí hay un ejemplo en vivo para ti: http://jsfiddle.net/fxCE9/

var myVariable = ''Hello''; alert(''value: '' + myVariable); myFunction1(); alert(''value: '' + myVariable); myFunction2(); alert(''value: '' + myVariable); function myFunction1() { myVariable = ''Hello 1''; } function myFunction2() { myVariable = ''Hello 2''; }

Si está haciendo esto dentro de una función jquery ready (), asegúrese de que su variable esté dentro de la función lista () junto con sus otras funciones.


Con jQuery puedes hacer esto, sin importar dónde esté la declaración:

$my_global_var = ''my value'';

Y estará disponible en todas partes. Lo uso para hacer galerías de imágenes rápidas, cuando las imágenes se extienden en diferentes lugares, así:

$gallery = $(''img''); $current = 0; $gallery.each(function(i,v){ // preload images (new Image()).src = v; }); $(''div'').eq(0).append(''<a style="display:inline-block" class="prev">prev</a> <div id="gallery"></div> <a style="display:inline-block" class="next">next</a>''); $(''.next'').click(function(){ $current = ( $current == $gallery.length - 1 ) ? 0 : $current + 1; $(''#gallery'').hide().html($gallery[$current]).fadeIn(); }); $(''.prev'').click(function(){ $current = ( $current == 0 ) ? $gallery.length - 1 : $current - 1; $(''#gallery'').hide().html($gallery[$current]).fadeIn(); });

Consejo : ejecuta todo este código en la consola en esta página ;-)


Declarar la variable fuera de las funciones

function dosomething(){ var i = 0; // can only be used inside function } var i = ''''; function dosomething(){ i = 0; // can be used inside and outside the function }


La mejor manera es usar closures , porque el objeto de la window se llena de propiedades.

Html

<!DOCTYPE html> <html> <head> <script type="text/javascript" src="init.js"></script> <script type="text/javascript"> MYLIBRARY.init(["firstValue", 2, "thirdValue"]); </script> <script src="script.js"></script> </head> <body> <h1>Hello !</h1> </body> </html>

init.js (Basado en esta respuesta )

var MYLIBRARY = MYLIBRARY || (function(){ var _args = {}; // private return { init : function(Args) { _args = Args; // some other initialising }, helloWorld : function(i) { return _args[i]; } }; }());

script.js

// Here you can use the values defined in the html as if it were a global variable var a = "Hello World " + MYLIBRARY.helloWorld(2); alert(a);

Aquí está el plnkr . Espero que ayude!


Si esta es la única aplicación donde va a utilizar esta variable, el enfoque de Felix es excelente. Sin embargo, si está escribiendo un plugin de jQuery, considere las variables y funciones "namespacing" (detalles sobre las citas más adelante ...) necesarias en el objeto jQuery. Por ejemplo, actualmente estoy trabajando en un menú emergente jQuery al que he llamado miniMenu. Por lo tanto, he definido un miniMenu "espacio de nombres" en jQuery, y miniMenu todo allí.

La razón por la que uso comillas cuando hablo de espacios de nombres de JavaScript es que no son realmente espacios de nombres en el sentido normal. En cambio, solo uso un objeto javascript y coloco todas mis funciones y variables como propiedades de este objeto.

Además, para mayor comodidad, generalmente subespacio el espacio de nombres del complemento con un espacio de nombre i para cosas que solo deberían usarse internamente dentro del complemento, para ocultarlo a los usuarios del complemento.

Así es como funciona:

// An object to define utility functions and global variables on: $.miniMenu = new Object(); // An object to define internal stuff for the plugin: $.miniMenu.i = new Object();

Ahora puedo hacer $.miniMenu.i.globalVar = 3 o $.miniMenu.i.parseSomeStuff = function(...) {...} cada vez que necesito guardar algo globalmente, y aún lo mantengo fuera del espacio de nombres global.


Si tiene que generar variables globales en el código de producción (lo cual debe evitarse), siempre explíquelas explícitamente :

window.globalVar = "This is global!";

Si bien es posible definir una variable global simplemente omitiendo var (suponiendo que no haya una variable local del mismo nombre), al hacerlo se genera un global implícito , lo cual es algo malo de hacer y generaría un error en el modo estricto .