[javascript] 클로저를 활용한 반복 처리
자바스크립트에서 클로저를 활용하면 반복적인 작업을 효율적으로 처리할 수 있습니다. 클로저는 함수가 선언될 당시의 환경을 기억하고 있다가 후에 호출될 때 그 환경을 계속 이용할 수 있는 특징을 가지고 있습니다. 이번 포스트에서는 클로저를 활용하여 반복적으로 값을 증가시키는 예제를 살펴보겠습니다.
클로저란 무엇인가?
클로저는 함수와 그 함수가 선언된 렉시컬 환경(Lexical Environment)의 조합입니다. 이 렉시컬 환경은 함수가 정의될 때의 환경을 기억하고 있는데, 이를 통해 함수가 외부 변수에 접근할 수 있게 됩니다.
function outerFunction() {
let outerVariable = 10;
function innerFunction() {
console.log(outerVariable);
}
return innerFunction;
}
let closureFunc = outerFunction();
위의 예제에서 innerFunction
은 outerFunction
이 실행되는 동안 생성된 렉시컬 환경을 기억하게 됩니다. 따라서 closureFunc
를 호출할 때마다 outerVariable
의 값에 접근하여 출력할 수 있습니다.
반복 처리 예제
이제 클로저를 활용하여 반복적으로 값을 증가시키는 예제를 살펴보겠습니다.
function createIncrementor(initialValue, increment) {
let value = initialValue;
function incrementor() {
value += increment;
console.log(value);
}
return incrementor;
}
let incrementByTwo = createIncrementor(0, 2);
incrementByTwo(); // 2
incrementByTwo(); // 4
incrementByTwo(); // 6
위의 예제에서 createIncrementor
함수는 새로운 값을 생성하기 위한 클로저를 반환합니다. 반환된 클로저를 통해 value
를 증가시키면서 값을 출력할 수 있습니다.
결론
클로저는 효율적인 반복 처리를 위해 매우 유용하게 활용될 수 있습니다. 함수를 통해 외부 환경의 변수를 기