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

}

Respuestas a la pregunta(12)

Su respuesta a la pregunta