[javascript] 클로저의 캡처링

클로저는 자바스크립트에서 매우 강력하면서도 유용한 개념으로, 외부 함수의 변수에 대한 참조를 저장하고 나중에 사용할 수 있도록 하는 기능입니다. 이런 클로저의 핵심 기능 중 하나는 캡처링(capturing)입니다. 캡처링은 클로저가 외부 함수에 있는 변수를 “잡아서(capture)” 나중에 접근할 수 있도록 하는 것을 의미합니다.

예를 들어, 다음과 같은 코드가 있다고 가정해봅시다.

function outerFunction() {
  let outerVariable = 10;
  function innerFunction() {
    console.log(outerVariable);
  }
  return innerFunction;
}

let myFunction = outerFunction();
myFunction(); // 10

위 코드에서 innerFunctionouterVariable을 참조하고 있습니다. outerFunction이 실행되고 나서도 innerFunctionouterVariable에 접근할 수 있는 이유는 바로 클로저의 캡처링 덕분입니다.

클로저의 캡처링은 매우 유용한 기능이지만 주의가 필요합니다. 캡처링된 변수가 계속 유지되는 한 메모리를 차지하게 되므로, 불필요한 캡처링은 자원 낭비로 이어질 수 있습니다. 적절한 시점에 클로저의 캡처링을 활용하고 해제하는 것이 중요합니다.

클로저와 캡처링에 대해 더 알아보고 싶다면, 다양한 온라인 자료와 책들을 참고하시기 바랍니다.


참고 자료: