예) x 라는 객체가 있고 doSomething() 함수를 부르면 1초 후에 x 의 hello() 함수를 부른다.
function x() {}
x.prototype.hello = function() {
alert("Hello");
}
x.prototype.doSomething = function() {
setTimeout(function() {this.hello();}, 1000); // this 를 쓰면 안된다.
}
디버깅 툴을 열고 아래 버튼을 눌렀을 때 hell() 함수를 찾을 수 없다는 에러를 확인한다.
다음과 같이 고쳐 쓴다.
다음과 같이 고쳐 쓴다.
var me = this;
setTimeout(function() {me.hello();}, 1000);
아래는 성공한다.
댓글 없음:
댓글 쓰기