setTimeout () dentro de JavaScript Class usando "this"
Estoy tratando de usarsetTimeout()
dentro de una función de clase en JavaScript. LossetTimeout()
e supone que @ activa otro método en la misma clase, por lo que la función que le estoy pasando se escribe comowindow.setTimeout("this.anotherMethod", 4000)
. Eso trae el problema:this
hace referencia al objeto llamante, en el caso desetTimeout()
estáwindow
. ¿Cómo puedo usar recintos para devolver una referencia al objeto de clase en sí mismo?
myObject = function(){
this.move = function(){
alert(this + " is running");
}
this.turn = function(){
alert(this + " is turning");
}
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();
}
}
}