Estou usando JavaScript e crio uma variável global. Eu o defino fora de uma função e quero alterar o valor da variável global de dentro de uma função e usá-lo de outra função, como faço isso?
fonte
Estou usando JavaScript e crio uma variável global. Eu o defino fora de uma função e quero alterar o valor da variável global de dentro de uma função e usá-lo de outra função, como faço isso?
Basta referenciar a variável dentro da função; sem mágica, basta usar o nome. Se ele foi criado globalmente, você estará atualizando a variável global.
Você pode substituir esse comportamento declarando-o localmente var
, mas se não o usar var
, o nome de uma variável usada em uma função será global se essa variável tiver sido declarada globalmente.
É por isso que é considerado uma boa prática sempre declarar explicitamente suas variáveis var
. Porque se você esquecer, pode começar a mexer com os globais por acidente. É um erro fácil de cometer. Mas, no seu caso, isso muda e se torna uma resposta fácil para sua pergunta.
console.log
é executada imediatamente, mas a função de sucesso do ajax é executada apenas em algum momento depois quando a chamada ajax realmente retorna uma resposta. Este é um ponto fundamental sobre a natureza assíncrona do ajax: o código nas funções de fechamento não é executado em sequência com o código ao seu redor. É importante entender isso ao aprender sobre código orientado a eventos.fonte
Basta usar o nome dessa variável.
No JavaScript, as variáveis são locais apenas para uma função, se forem os parâmetros da função ou se você as declarar como locais explicitamente, digitando a
var
palavra - chave antes do nome da variável.Se o nome do valor local tiver o mesmo nome que o valor global, use o
window
objetoVeja este jsfiddle
Editar
Com o ES2015, surgiram mais duas palavras
const
- chave elet
, que também afetam o escopo de uma variável ( especificação de idioma )fonte
fonte
var
palavra-chave dentro da função, então você não tem que lidar comdocument.getElementById("outside").value = x;
Com window ['variableName'] ou window.variableName, você pode modificar o valor de uma variável global dentro de uma função.
fonte