setTimeout () dentro da classe JavaScript usando "this"

Estou tentando usarsetTimeout() dentro de uma função de classe em JavaScript. OsetTimeout() deve disparar outro método na mesma classe, então a função que estou passando é escrita comowindow.setTimeout("this.anotherMethod", 4000). Isso traz o problema:this faz referência ao objeto de chamada, no caso desetTimeout() isto éwindow. Como posso usar gabinetes para retornar uma referência ao próprio objeto de class

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

}

questionAnswers(12)

yourAnswerToTheQuestion