Come cambio il valore di una variabile globale all’interno di una funzione

Sto usando JavaScript e creo una variabile globale. Lo definisco al di fuori di una funzione e voglio cambiare il valore della variabile globale dall’interno di una funzione e usarlo da un’altra funzione, come faccio?

Basta fare riferimento alla variabile all’interno della funzione; nessuna magia, basta usare il suo nome. Se è stato creato globalmente, aggiornerai la variabile globale.

È ansible sovrascrivere questo comportamento dichiarandolo localmente utilizzando var , ma se non si utilizza var , il nome di una variabile utilizzato in una funzione sarà globale se tale variabile è stata dichiarata globalmente.

Ecco perché è considerata una buona pratica dichiarare sempre le variabili in modo esplicito con var . Perché se lo dimentichi, puoi iniziare a scherzare con i globals per sbaglio. È un errore facile da fare. Ma nel tuo caso, questo si trasforma e diventa una facile risposta alla tua domanda.

 var a = 10; myFunction(); function myFunction(){ a = 20; } alert("Value of 'a' outside the function " + a); //outputs 20 

Basta usare il nome di quella variabile.

In JavaScript, le variabili sono solo locali a una funzione, se sono i parametri della funzione o se le si dichiara esplicitamente locale digitando la parola chiave var prima del nome della variabile.

Se il nome del valore locale ha lo stesso nome del valore globale, utilizzare l’object window

Vedi questo jsfiddle

 x = 1; y = 2; function a(y) { // y is local to the function, because it is a function parameter alert(y); // 10 y = 3; // will only overwrite local y, not 'global' y var x; // makes xa local variable x = 4; // only overwrites local x alert(y); // 3 alert(x); // 4 // global value could be accessed by referencing through window object alert(window.y) // 2 global y } a(10); alert(x); // 1; this is the global value alert(y); // 2; global as well 
  
 var a = 10; myFunction(a); function myFunction(a){ window['a'] = 20; // or window.a } alert("Value of 'a' outside the function " + a); //outputs 20 

Con window [‘variableName’] o window.variableName è ansible modificare il valore di una variabile globale all’interno di una funzione.