Szukaj…
Łączenie zadań w deklaracje var.
Łączenie łańcuchów w ramach deklaracji var spowoduje niezamierzone utworzenie zmiennych globalnych.
Na przykład:
(function foo() {
var a = b = 0;
})()
console.log('a: ' + a);
console.log('b: ' + b);
Spowoduje to:
Uncaught ReferenceError: a is not defined
'b: 0'
W powyższym przykładzie a jest lokalne, ale b staje się globalne. Wynika to z oceny od prawej do lewej operatora = . Tak więc powyższy kod faktycznie został oceniony jako
var a = (b = 0);
Prawidłowy sposób łączenia przypisań var jest:
var a, b;
a = b = 0;
Lub:
var a = 0, b = a;
Pozwoli to upewnić się, że zarówno i a b będą zmienne lokalne.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow