Ricerca…
Concatenamento di assegnazioni nelle dichiarazioni var.
Concatenare assegnazioni come parte di una dichiarazione var
creerà accidentalmente variabili globali.
Per esempio:
(function foo() {
var a = b = 0;
})()
console.log('a: ' + a);
console.log('b: ' + b);
Risulterà in:
Uncaught ReferenceError: a is not defined
'b: 0'
Nell'esempio precedente, a
è locale ma b
diventa globale. Ciò è dovuto alla valutazione da destra a sinistra dell'operatore =
. Quindi il codice sopra effettivamente valutato come
var a = (b = 0);
Il modo corretto di concatenare le assegnazioni di var è:
var a, b;
a = b = 0;
O:
var a = 0, b = a;
Ciò assicurerà che sia a
che b
saranno variabili locali.
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow