자바스크립트 클로저: 내부 함수가 가지는 특별한 슈퍼파워

Photo of author

By tutor

자바스크립트 클로저: 내부 함수가 가지는 특별한 슈퍼파워

자바스크립트 클로저: 내부 함수가 가지는 특별한 슈퍼파워

 

자바스크립트 클로저: 내부 함수가 가지는 특별한 슈퍼파워

클로저란 무엇인가?

클로저는 자바스크립트에서 중요한 개념 중 하나입니다. 클로저는 함수를 선언하는 시점에서 해당 함수를 포함하는 범위(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)에 있는 변수를 계속해서 사용할 수 있게 해주는 중요한 개념입니다. 이를 활용하여 다양한 상황에서 효과적으로 자바스크립트 코드를 작성할 수 있습니다.