최대 1 분 소요

클로저

함수와 함수가 선언된 어휘적 환경의 조합

function myClosure(){
    var name = "Sonia";
    function displayName(){
        alert(name);
    }
    return displayName;
}

var myFunc = myClosure(); //유효범위의 어휘적 환경을 유지
myFunc(); // 리턴된 displayName 함수 실행
  • 클로저는 외부 함수가 끝난 이후에도 자유함수의 인자, 지역 변수 등에 접근 가능하다. => 자유 변수 (free variable)
  • 이 자유 변수를 가지는 코드를 클로저라고 한다.
  • 클로저가 생성 될 때 지역변수를 자유변수로 변환하는 것을 캡쳐(capture) 라고 한다.
  • private 접근 지정자와 비슷하다.

카테고리:

업데이트: