자바스크립트 클로저: 내부 함수가 가지는 특별한 슈퍼파워
클로저란 무엇인가?
클로저는 자바스크립트에서 중요한 개념 중 하나입니다. 클로저는 함수를 선언하는 시점에서 해당 함수를 포함하는 범위(scope)에 있는 변수를 계속 유지하는 기능을 말합니다. 즉, 해당 함수가 실행되어도 해당 범위의 변수를 계속해서 사용할 수 있도록 해줍니다.
예를 들어, 다음과 같은 함수를 생각해봅시다.
function outerFunction() {
const outerVariable = "I am from outer scope";
function innerFunction() {
console.log(outerVariable);
}
return innerFunction;
}
const innerFunc = outerFunction();
innerFunc(); // "I am from outer scope" 출력
위 예제에서, outerFunction은 innerFunction을 반환합니다. 그리고 innerFunc을 호출하면 “I am from outer scope”가 출력됩니다. 이를 통해 클로저는 함수를 선언할 때의 범위에 있는 변수를 계속해서 사용할 수 있게 해준다는 것을 알 수 있습니다.
클로저의 활용 예시
클로저는 다양한 상황에서 활용될 수 있습니다. 예를 들어, 다음과 같은 코드를 생각해보세요.
function count() {
let num = 0;
function increaseNum() {
num++;
console.log(num);
}
return increaseNum;
}
const increase = count();
increase(); // 1 출력
increase(); // 2 출력
increase(); // 3 출력
위 코드에서, count 함수는 increaseNum 함수를 반환합니다. increaseNum 함수는 count 함수의 범위(scope)에 있는 변수 num을 유지하고 있기 때문에, 해당 변수의 값을 계속해서 증가시킬 수 있습니다.
결론
클로저는 자바스크립트에서 매우 유용한 개념 중 하나입니다. 함수를 선언할 때의 범위(scope)에 있는 변수를 계속해서 사용할 수 있게 해주는 클로저의 특징은 다양한 상황에서 활용될 수 있습니다. 클로저를 효과적으로 활용하여 자바스크립트 작성을 더욱 효율적이고 즐겁게 해보세요!
자바스크립트 클로저는 함수를 선언할 때의 범위(scope)에 있는 변수를 계속해서 사용할 수 있게 해주는 중요한 개념입니다. 이를 활용하여 다양한 상황에서 효과적으로 자바스크립트 코드를 작성할 수 있습니다.