돌아가기

counter는 독립적일까요?

중요도: 5

makeCounter를 사용해 두 개의 conuter countercounter2를 만들었습니다.

두 counter는 독립적일까요? 두 번째 카운터는 0, 1이나 2, 3중 어떤 숫자를 얼럿창에 띄워줄까요? 다른 결과가 출력될까요?

function makeCounter() {
  let count = 0;

  return function() {
    return count++;
  };
}

let counter = makeCounter();
let counter2 = makeCounter();

alert( counter() ); // 0
alert( counter() ); // 1

alert( counter2() ); // ?
alert( counter2() ); // ?

얼럿창엔 0과 1 이 출력됩니다.

함수 countercounter2는 각각 다른 makeCounter 호출에 의해 만들어졌습니다.

두 함수는 독립적인 렉시컬 환경을 갖게 되므로 각 함수는 자신만의 count를 갖게 됩니다.