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?

Respuestas a la pregunta(5)

Su respuesta a la pregunta