[typescript] 화살표 함수와 익명 함수를 사용한 클로저 처리 차이

클로저(Closure)는 함수가 선언될 때의 환경을 기억하여, 함수가 선언된 후에도 해당 환경을 기억하는 기능을 가리킵니다. 타입스크립트에서 클로저를 다룰 때, 화살표 함수와 익명 함수를 사용할 때 발생하는 차이점을 살펴보겠습니다.

화살표 함수를 통한 클로저 처리

화살표 함수에서 클로저를 다룰 때에는, 함수가 선언될 때의 외부 환경을 기억하게 됩니다. 예를 들어, 다음과 같은 코드를 살펴봅시다.

let num = 10;
const addNum = () => {
  let innerNum = 5;
  return num + innerNum;
}

addNum 함수가 num을 기억하고 있기 때문에, 클로저에서 num의 값을 참조하여 계산을 수행할 수 있습니다.

익명 함수를 통한 클로저 처리

반면에, 익명 함수를 사용해서 클로저를 다룰 때에는 외부 환경을 기억하는 방식이 다릅니다. 예를 들어, 아래의 코드를 살펴봅시다.

let num = 10;
function addNum() {
  let innerNum = 5;
  return num + innerNum;
}

익명 함수를 사용할 경우, 함수가 호출될 때의 외부 환경을 기억하여 클로저를 처리합니다. 즉, 익명 함수를 통한 클로저는 실행 컨텍스트에 의해 결정됩니다.

결론

화살표 함수를 사용할 때와 익명 함수를 사용할 때의 클로저 처리 방식에는 차이가 있습니다. 화살표 함수는 선언될 때의 외부 환경을 기억하고, 익명 함수는 호출될 때의 외부 환경을 기억합니다.

따라서, 클로저를 다룰 때에는 어떤 방식을 선택하느냐에 따라서 프로그램의 동작이 달라질 수 있으므로, 이러한 차이를 이해하고 활용하는 것이 중요합니다.

이상으로 타입스크립트에서 화살표 함수와 익명 함수를 사용한 클로저 처리의 차이에 대해 살펴보았습니다.

참고문헌: