Como posso declarar uma variável global em JavaScript?
javascript
global-variables
Dançarino
fonte
fonte
window
está disponível apenas em navegadores. Você poderia editar sua resposta para fazê-la funcionar em todos os ambientes? Consulte Como obter o objeto global em JavaScript?Se este é o único aplicativo em que você usará essa variável, a abordagem de Felix é excelente. No entanto, se você estiver escrevendo um plug-in jQuery, considere variáveis e funções de "namespacing" (detalhes das aspas mais tarde ...) necessárias no objeto jQuery. Por exemplo, atualmente estou trabalhando em um menu pop-up do jQuery que chamei de miniMenu. Assim, eu defini um "namespace"
miniMenu
no jQuery e coloco tudo lá.O motivo pelo qual uso aspas quando falo sobre espaços para nome javascript é que eles não são realmente espaços para nome no sentido normal. Em vez disso, basta usar um objeto javascript e colocar todas as minhas funções e variáveis como propriedades desse objeto.
Além disso, por conveniência, geralmente subpovoo o espaço de nomes do plug-in com um
i
espaço de nomes para itens que só devem ser usados internamente dentro do plug-in, para ocultá-lo dos usuários do plug-in.É assim que funciona:
Agora posso fazer
$.miniMenu.i.globalVar = 3
ou$.miniMenu.i.parseSomeStuff = function(...) {...}
sempre que precisar salvar algo globalmente e ainda assim mantê-lo fora do namespace global.fonte
delete $.miniMenu
:). Tudo bem?delete $.miniMenu
.EDIT A pergunta é sobre JavaScript, a resposta é sobre jQuery, o que está errado. Esta é uma resposta antiga, desde os tempos em que o jQuery era difundido.
Em vez disso, recomendo a compreensão de escopos e fechamentos em JavaScript
Resposta antiga e ruim: Com o jQuery, você pode fazer isso, independentemente da declaração:
E estará disponível em qualquer lugar. Eu o uso para fazer galerias de imagens rápidas, quando as imagens são espalhadas em lugares diferentes, como:
Dica : execute esse código inteiro no console nesta página ;-)
fonte
$current = 0;
no início a função, a posterior não funcionará.Aqui está um exemplo básico de uma variável global que o restante de suas funções pode acessar. Aqui está um exemplo ao vivo para você: http://jsfiddle.net/fxCE9/
Se você estiver fazendo isso dentro de uma função jquery ready (), verifique se sua variável está dentro da função ready () junto com suas outras funções.
fonte
Declare a variável fora das funções
fonte
A melhor maneira é usar
closures
, porque owindow
objeto fica muito, muito cheio de propriedades.Html
init.js (com base nesta resposta )
script.js
Aqui está o plnkr . Espero que ajude!
fonte