해결된 질문
작성
·
156
0
function makeCounter() {
let count = 0;
return function() {
return count++;
};
}
let counter = makeCounter();
console.log( counter() ); // 0(?)
console.log( counter() ); // 1(?)
console.log( counter() ); // 2(?)
좋은 강의 잘 듣고 있습니다만, Closure부터 이해가 안되기 시작하네요..
질문 드립니다..
위의 코드의 경우에
counter = function() { return count++; };
이라서 이를 counter()로 실행하면 counter를 찾아야하기 때문에 외부 렉시컬 환경으로 나가서
let counter = 0;
이라는 것을 찾아서 0을 가져와서 `++`로 증감시키면 1, 2, 3이되어야하는것 아닌가요?
이 부분이 0이 되는 이유를 모르겠습니다...