setTimeout-Bereichsproblem

Ich habe ein setTimeout innerhalb einer Funktion definiert, die den Respawn des Spielers steuert (ich erstelle ein Spiel):

var player = {
    ...
    death:(function() {
        this.alive = false;
        Console.log("death!");
        var timer3 = setTimeout((function() {
            this.alive = true;
            Console.log("alive!");
        }),3000);
    }),
    ...
}

Wenn es ausgeführt wird, lese ich in der Konsole "Tod!" und 3 Sekunden später "lebendig!". Jedoch,alive wird nie wirklich auf true zurückgesetzt, denn wenn ich schreibeplayer.alive In der Konsole wird es zurückgegebenfalse. Wie kommt es, dass ich "lebendig" sehe? aber die Variable wird nie wieder auf true gesetzt?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage