클로져에 대해서 나름대로 정리해보면,
아래와 같은 함수에서 MyClass을 outter함수라고 부를때,
내부 함수 (gettitle)가 outter의 지역변수를 계속 사용할 수 있다는 개념.
(javascript의 initialize비용이 비싸므로, closure를 이용해서 inner함수 안에서 if(!undefined) define을 할 수 있다.)
==> Point: 외부함수가 종료된 이후에도 사용할 수 있다.
var that=this 로 해서, this도 많이 사용한다고 한다. 이렇게 안하면 this가 전역변수인 window를 나타낼 수 있기 때문...
function MyClass(_title){
var title=_title;
return{ //json스타일 객체를 return.
getTitle:function() { return title;},
}
}
g=MyClass('ggg');
m=MyClass('mmm');
alert(g.geTtitle()); //m.getTilte()도 잘 동작.
참조: devbox