[javascript] 클로저의 캡처링
클로저는 자바스크립트에서 매우 강력하면서도 유용한 개념으로, 외부 함수의 변수에 대한 참조를 저장하고 나중에 사용할 수 있도록 하는 기능입니다. 이런 클로저의 핵심 기능 중 하나는 캡처링(capturing)입니다. 캡처링은 클로저가 외부 함수에 있는 변수를 “잡아서(capture)” 나중에 접근할 수 있도록 하는 것을 의미합니다.
예를 들어, 다음과 같은 코드가 있다고 가정해봅시다.
function outerFunction() {
let outerVariable = 10;
function innerFunction() {
console.log(outerVariable);
}
return innerFunction;
}
let myFunction = outerFunction();
myFunction(); // 10
위 코드에서 innerFunction
은 outerVariable
을 참조하고 있습니다. outerFunction
이 실행되고 나서도 innerFunction
이 outerVariable
에 접근할 수 있는 이유는 바로 클로저의 캡처링 덕분입니다.
클로저의 캡처링은 매우 유용한 기능이지만 주의가 필요합니다. 캡처링된 변수가 계속 유지되는 한 메모리를 차지하게 되므로, 불필요한 캡처링은 자원 낭비로 이어질 수 있습니다. 적절한 시점에 클로저의 캡처링을 활용하고 해제하는 것이 중요합니다.
클로저와 캡처링에 대해 더 알아보고 싶다면, 다양한 온라인 자료와 책들을 참고하시기 바랍니다.
참고 자료: