[TIL] 자바스크립트 클로저
클로저
함수와 함수가 선언된 어휘적 환경의 조합
function myClosure(){
var name = "Sonia";
function displayName(){
alert(name);
}
return displayName;
}
var myFunc = myClosure(); //유효범위의 어휘적 환경을 유지
myFunc(); // 리턴된 displayName 함수 실행
- 클로저는 외부 함수가 끝난 이후에도 자유함수의 인자, 지역 변수 등에 접근 가능하다. => 자유 변수 (free variable)
- 이 자유 변수를 가지는 코드를 클로저라고 한다.
- 클로저가 생성 될 때 지역변수를 자유변수로 변환하는 것을 캡쳐(capture) 라고 한다.
- private 접근 지정자와 비슷하다.