プレーヤーのリスポーンを制御する関数内にsetTimeoutを定義しています(ゲームを作成しています)。
var player = {
...
death:(function() {
this.alive = false;
Console.log("death!");
var timer3 = setTimeout((function() {
this.alive = true;
Console.log("alive!");
}),3000);
}),
...
}
それが実行されるとき、私はコンソールで「死!」と読みました。そして3秒後に「生きている!」ただし、実際にtrueに戻されることはありません。コンソールにalive
書き込むと、が返されるためです。どうして私は「生きている」を見ることができます!しかし、変数がtrueに戻されることはありませんか?player.alive
false