의미와 정의

Closure - 닫힘/폐쇄/완결성

MDN 내용과 해석

예제

var outer = function () {
	var a = 1;
	var inner = function () {
		console.log(++a);
	};
	inner();
}
outer();

살펴보자.

이제 코드를 조금 바꿔보자

var outer = function () {
	var a = 1;
	var inner = function () {
		return ++a; // console 찍는 대신에 리턴을 한다
	};
	return inner; // inner 함수를 호출하는 대신에 우선 리턴한다(**outer함수의 외부로 inner를 전달**)
}
var outer2 = outer(); // outer를 당장 실행하는 대신에 새로운 outer2 변수에 담아둔다.
console.log(outer2()); // 2
console.log(outer2()); // 3 ... 계속 a가 살아있고 숫자가 늘어나는 것을 확인 가능

이때 조금 복잡하지만 콜스택 흐름을 또 살펴볼 수가 있는데, 영상에 잘 나오지만 결과적으로 요약하면 다음과 같은 흐름이 발생한다:

클로저 현상의 의미(의의? 대단한 점? 이점?)