수색…
var 선언의 할당 체인.
할당을 var
선언의 일부로 연결하면 실수로 전역 변수가 만들어집니다.
예 :
(function foo() {
var a = b = 0;
})()
console.log('a: ' + a);
console.log('b: ' + b);
결과는 다음과 같습니다.
Uncaught ReferenceError: a is not defined
'b: 0'
위의 예에서 a
는 로컬이지만 b
는 글로벌이됩니다. 이것은 =
연산자의 오른쪽에서 왼쪽으로의 평가 때문입니다. 위의 코드는 실제로 다음과 같이 평가됩니다.
var a = (b = 0);
var 할당을 연결하는 올바른 방법은 다음과 같습니다.
var a, b;
a = b = 0;
또는:
var a = 0, b = a;
이렇게하면 a
와 b
가 모두 지역 변수가됩니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow