在JavaScript类中使用"this"的setTimeout()函数

9 浏览
0 Comments

在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();

}

}

}

0