questão do escopo setTimeout
Eu tenho um setTimeout definido dentro de uma função que controla o respawn do player (estou criando um jogo):
var player = {
...
death:(function() {
this.alive = false;
Console.log("death!");
var timer3 = setTimeout((function() {
this.alive = true;
Console.log("alive!");
}),3000);
}),
...
}
Quando ele é executado, eu leio no console "morte!" e 3 segundos depois "vivo!" Contudo,alive
nunca é realmente voltar a verdade, porque se eu escreverplayer.alive
no console, ele retornafalse
. Como posso ver "vivo!" mas a variável nunca é definida de volta para true?