3.2.2 클로저와 정적 스코프

    클로저(closure)는 간단히 말해 외부 값에 접근하는 함수입니다. 모든 자바스크립트 함수는 클로저가 될 수 있습니다. 무슨 의미인지 예제 코드로 알아보겠습니다.

    func() 함수는 자신의 외부에 있는 변수 a를 사용하고 있습니다. 그래서 func() 함수는 클로저입니다.

    const a = 1;
    const func = () => { 
      console.log(a);
    };

    다음 함수도 클로저입니다. 그런데 어디서 본 것 같지 않나요? 2.6.2 함수고차 함수 사용하기에서 예로 들었던 함수입니다. 반환값인 익명 함수는 자신의 외부에 있는 msg 매개변수를 사용하고 있습니다. 따라서 클로저입니다.

    const func = (msg) => { 
      return () => {
        console.log(msg);
      };
    };
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.