javascript closer
참고 : http://dev.naver.com/tech/ajaxui/ajaxui_2.php#a_2_2
** 이해 하기 위해서는 함수 자체가 상태를 지닌 객체라고 인식 하면 편할 것 같다.
즉 buildList에서 var로 선언한 부분은 멤버 변수이고 클로저는 멤버 함수의 역할을 한다고 생각하면 이해가 될꺼 같다.
=_= 이런것도 모르고 있었다니. ㅠㅠ 다시 기초부터 천천히 gogogo~
function buildList(list) {
var result = [];
for (var i = 0; i < list.length; i++) {
var item = 'item' + list[i];
result.push( function() {alert(item + ' ' + list[i])} );
}
return result;
}
function testList() {
var fnlist = buildList([1,2,3]);
for (var j = 0; j < fnlist.length; j++) {
fnlist[j]();
}
}
testList();
위를 실행하면 alert(item3 undefined)가 3번 수행된다.** 이해 하기 위해서는 함수 자체가 상태를 지닌 객체라고 인식 하면 편할 것 같다.
즉 buildList에서 var로 선언한 부분은 멤버 변수이고 클로저는 멤버 함수의 역할을 한다고 생각하면 이해가 될꺼 같다.
=_= 이런것도 모르고 있었다니. ㅠㅠ 다시 기초부터 천천히 gogogo~
댓글
댓글 쓰기