J'essaie d'utiliser setTimeout()
dans une fonction de classe en JavaScript. Le setTimeout()
est censé déclencher une autre méthode dans la même classe, donc la fonction que je lui passe est écrite sous la forme window.setTimeout("this.anotherMethod", 4000)
. Cela pose le problème : this
référence l'objet appelant, dans le cas de setTimeout()
c'est window
. Comment puis-je utiliser des pièces jointes pour renvoyer une référence à l'objet de classe lui-même ?
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();
}
}
}