여기에 무엇이 누락 되었습니까? 이 예상대로 동작 :JavaScript var 키워드 : 클로저 내의 변수 값 재정의
var x = 1;
(function(){
// x === 1
})();
그러나,
var x = 1;
(function(){
var x = x;
// x is undefined
})();
내가 x는 1
을해야한다고 생각합니다. var x = x
은 할당되기 전에 x 값을 누크하는 것처럼 보입니다. 이거 버그 야? 이것은 매우 직관적이지 않습니다.
이 동작이 변경 되었습니까? 나는 과거에 like this을하는 것을 기억합니다.
참고로:
var x = 1;
(function(){
var y = x;
// y === 1
})();
그리고 :
var x = 1;
(function(){
x = x;
// x === 1
})();
일반적으로 var가 선언 된 곳은 함수의 맨 앞에 선언 된 것처럼 (할당 전에) 선언됩니다. – coyotte508