相关疑难解决方法(0)

setTimeout范围问题

我在一个控制玩家重生的函数内部定义了一个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

28
推荐指数
5
解决办法
3万
查看次数

标签 统计

javascript ×1