在JavaScript类中使用"this"的setTimeout()函数
- 论坛
- 在JavaScript类中使用"this"的setTimeout()函数
9 浏览
在JavaScript类中使用"this"的setTimeout()函数
我正在尝试在JavaScript的类函数中使用setTimeout()。setTimeout()应该触发同一类中的另一个方法,因此我传递给它的函数被写成window.setTimeout("this.anotherMethod", 4000)。这就带来了问题:this引用调用对象,在setTimeout()的情况下是window。如何使用封闭来返回对类对象本身的引用?
myObject = function(){
this.move = function(){
alert(this + "正在运行");
}
this.turn = function(){
alert(this + "正在转动");
}
this.wait = function(){
window.setTimeout("this.run" ,(1000 * randomNumber(1,5)));
}
this.run = function(){
switch(randomNumber(0,2)){
case 0:
this.move();
break;
case 1:
this.turn();
break;
case 2:
this.wait();
}
}
}