원래 함수는 호출이 되고 종료되면 해체되는데
f2()에서 자신만의 a가 없으니 f1()이 이미 호출됐음에도 불구하고
닫지 못하고 그대로 남아있다.
function f1(){
var a = 1;
return function f2(){
return a;
}
}
var f = f1();
var a = f();
alert(a); //1
이때, 그 함수를 닫을수 있는 키 같은 역할을 하는게 클로저(Closure)가
function f2(){ return a; } 부분이다.
클로저를 통해서 자원이 묶일수 있는데,
그것을 자신이 알고 있는게 중요하다.