[javascript] 클로저를 활용한 타이머 함수 구현

많은 프로그래밍 언어에서 클로저(closure)는 매우 유용한 개념입니다. 클로저는 함수와 해당 함수가 선언될 당시의 환경을 함께 기억하는 기능을 말합니다. 이번에는 자바스크립트를 사용하여 클로저를 활용한 타이머 함수를 구현하는 방법에 대해 알아보겠습니다.

클로저란 무엇인가요?

클로저는 다음과 같은 특성을 가지고 있습니다.

클로저를 사용하여 타이머 함수 구현하기

다음은 클로저를 사용하여 타이머 함수를 구현한 예시입니다.

function createTimer(interval) {
  let count = 0;
  
  function timer() {
    count++;
    console.log(`타이머: ${count}`);
  }

  setInterval(timer, interval);
}

let myTimer = createTimer(1000);

위 코드에서 createTimer 함수는 주기를 매개변수로 받아 타이머 함수를 생성합니다. 내부 함수 timer는 외부 함수인 createTimer의 변수인 count에 접근하여 값을 증가시키고 콘솔에 출력합니다. setInterval을 통해 timer 함수가 주기적으로 실행되도록 설정합니다.

결론

클로저를 사용하여 타이머 함수를 구현하면 외부 함수의 변수에 접근하고 값을 기억할 수 있어 매우 유용합니다. 클로저를 잘 이해하고 활용한다면 더 다양하고 유연한 함수를 구현할 수 있을 것입니다.

참고 자료: