•
클로저라는 것은 뭔가 특별한 개념이 아니라, 함수의 생성과 함께 무조건 생기는 당연한 개념이다. 그렇지만 실제로는 클로저라는 단어를 이런 보편적인 상황에 모두 적용하지는 않는다.
컨텍스트 A에서 선언한 변수를 내부함수 B에서 참조할 경우에 발생하는 특별한 현상
var outer = function() {
var a = 1;
var inner = function() {
return ++a;
};
return inner;
}
var outer2 = outer();
console.log(outer2()); //outer의 실행 컨텍스트는 종료됐지만 내부변수 a는 죽지 않는다(a=2)
console.log(outer2()); //a=3
JavaScript
복사