• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

return된 함수 질문드립니다.

20.12.25 20:08 작성 조회수 99

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

질문자

2020.12.26

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

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