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);
};
};
'JavaScript' 카테고리의 다른 글
[JavaScript] 정적 클래스, 동적 클래스 (0) | 2010.01.04 |
---|---|
[JavaScript] 객체 내에서 생성된 노드에 이벤트 걸기 (0) | 2009.12.31 |
[JavaScript] 시간 맞춰 돌아가는 롤링배너 (Rolling Banner) (0) | 2009.12.31 |
[JavaScript] new line(\n)을 포함한 패턴매칭 (0) | 2009.12.29 |
[JavaScript] \n 을 치환하기 (0) | 2009.09.18 |