setInterval 등 함수포인터(-_-)를 인자로 받는 함수 사용시,
객체 내부에서 this 를 참조하는 구문이 존재할 경우 일반적인 방법으로 하면 오류가 발생한다.

var classA = function() {
this.name = "classA";

this.outputName = function(funcName) {
alert("["+funcName+"] "+this.name);
};

// 이건 scope 지정 실패로 에러 (따옴표로 감싸봐야 다를 것도 없지...-_-)
this.scope1 = function() {
setInterval(this.outputName('scope1'), 1000);
};

// 이건 제대로 동작함
this.scope2 = function() {
var t = this;
setInterval(function() { t.outputName('scope2'); }, 1000);
};
}; 





Posted by bloodguy
,