¿Cómo puedo declarar una variable global en JavaScript?
javascript
global-variables
Bailarín
fuente
fuente
window
está disponible solo en navegadores. ¿Podría editar su respuesta para que funcione en todos los entornos? Consulte ¿Cómo obtener el objeto global en JavaScript?Si esta es la única aplicación en la que va a utilizar esta variable, el enfoque de Felix es excelente. Sin embargo, si está escribiendo un complemento jQuery, considere las variables y funciones de "espacio de nombres" (detalles sobre las comillas más adelante ...) necesarias bajo el objeto jQuery. Por ejemplo, actualmente estoy trabajando en un menú emergente jQuery que he llamado miniMenu. Por lo tanto, he definido un "espacio de nombres"
miniMenu
en jQuery, y coloco todo allí.La razón por la que uso comillas cuando hablo de los espacios de nombres de JavaScript es que en realidad no son 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, por conveniencia, generalmente subespacio el espacio de nombres del complemento con un
i
espacio de nombres para cosas que solo deben usarse internamente dentro del complemento, para ocultarlo de los usuarios del complemento.Así es como funciona:
Ahora solo 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.fuente
delete $.miniMenu
. ¿Está bien?delete $.miniMenu
.EDITAR La pregunta es sobre JavaScript, la respuesta es sobre jQuery, que está mal. Esta es una vieja respuesta, desde tiempos en que jQuery estaba muy extendido.
En cambio, recomiendo comprender los ámbitos y cierres en JavaScript
Vieja, mala respuesta: con jQuery puedes hacer esto, sin importar dónde esté la declaración:
Y estará disponible en todas partes. Lo uso para hacer galerías de imágenes rápidas, cuando las imágenes se difunden en diferentes lugares, así:
Consejo : ejecute todo este código en la consola en esta página ;-)
fuente
$current = 0;
al principio de la función, la última no funcionará.Aquí hay un ejemplo básico de una variable global a la que puede acceder el resto de sus funciones. Aquí hay un ejemplo en vivo para usted: http://jsfiddle.net/fxCE9/
Si está haciendo esto dentro de una función jquery ready (), asegúrese de que su variable esté dentro de la función ready () junto con sus otras funciones.
fuente
Declarar la variable fuera de las funciones.
fuente
La mejor manera es usarlo
closures
, porque elwindow
objeto se vuelve muy, muy desordenado de propiedades.HTML
init.js (Basado en esta respuesta )
script.js
Aquí está el plnkr . Espero que ayude!
fuente