돌아가기

숫자 설정과 감소가 가능한 counter 만들기

중요도: 5

다음 makeCounter()코드를 수정해서 카운터가 감소하고 숫자를 설정하게 해보세요.

  • counter()는 다음 숫자를 반환해야 합니다.
  • counter.set(value)는 counter를 value로 설정해야 합니다.
  • counter.decrease()는 counter를 1 감소시켜야 합니다.

아래 링크를 클릭해 sandbox에 작성된 코드를 보고, 사용법을 살펴보세요.

참고: 클로저 또는 함수 프로퍼티를 사용해 counter 값을 저장할 수 있습니다. 두 가지 방법을 모두 사용해 답안을 두 개 만드셔도 됩니다.

테스트 코드가 담긴 샌드박스를 열어 정답을 작성해보세요.

아래 답안은 지역변수 count를 사용하고 있는데, 추가 메서드는 함수 counter에 정의하고 있습니다. 함수 counter에 할당한 메서드들은 동일한 외부 렉시컬 환경을 공유하고 동일한 count에 접근할 수 있습니다.

function makeCounter() {
  let count = 0;

  function counter() {
    return count++;
  }

  counter.set = value => count = value;

  counter.decrease = () => count--;

  return counter;
}

테스트 코드가 담긴 샌드박스를 열어 정답을 확인해보세요.