인프런 커뮤니티 질문&답변

LEO님의 프로필 이미지
LEO

작성한 질문수

코어 자바스크립트

return된 함수 질문드립니다.

해결된 질문

작성

·

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이 되는 이유를 모르겠습니다...

답변 2

0

정재남님의 프로필 이미지
정재남
지식공유자

:D

0

LEO님의 프로필 이미지
LEO
질문자

공부하다보니 증가, 감소연산자의 후위형의 경우 리턴값은 반영되지 않기 때문이네요...

더 꼼꼼하게 공부해야겠습니다. ;)

LEO님의 프로필 이미지
LEO

작성한 질문수

질문하기