problema de alcance setTimeout
Tengo un setTimeout definido dentro de una función que controla el respawn del jugador (estoy creando un juego):
var player = {
...
death:(function() {
this.alive = false;
Console.log("death!");
var timer3 = setTimeout((function() {
this.alive = true;
Console.log("alive!");
}),3000);
}),
...
}
Cuando se ejecuta, leo en la consola, "la muerte!" y 3 segundos después "vivo!". Sin embargo,alive
nunca se vuelve realmente verdadero, porque si escriboplayer.alive
En la consola, vuelve.false
. ¿Cómo es que puedo ver "vivo!" ¿Pero la variable nunca vuelve a ser verdadera?