我在一个控制玩家重生的函数内部定义了一个setTimeout(我正在创建一个游戏):
var player = {
...
death:(function() {
this.alive = false;
Console.log("death!");
var timer3 = setTimeout((function() {
this.alive = true;
Console.log("alive!");
}),3000);
}),
...
}
Run Code Online (Sandbox Code Playgroud)
当它执行时,我在控制台中读到"死!" 3秒后"活着!".但是,alive永远不会真正设置为true,因为如果我player.alive在控制台中写入,它将返回false.为什么我能看到"活着!" 但变量永远不会回归真?
javascript ×1