繁体   English   中英

Javascript属性为NaN

[英]Javascript attribute is NaN

我有以下javascript代码:

var Environment = function() {
    this.road_frame_id = 1;   
}

Environment.prototype.nextRoadFrame = function() {
    if((this.road_frame_id -= 1) < 1) { 
        this.road_frame_id = 3;
    }
    document.getElementById("road").setAttribute("src", "images/road_background_" + this.road_frame_id + ".png");
}

var environment = new Environment();
setInterval(environment.nextRoadFrame, 150);

但是似乎在函数nextRoadFrame内应将属性this.road_frame_id作为值NaN设置为3时,为什么会这样?

谢谢

你是路过存储在功能environment.nextRoadFrame但没有任何背景,所以价值this将是window时,它被调用。

创建一个新函数,以正确的上下文调用您的函数,并将其传递给setInterval

setInterval(environment.nextRoadFrame.bind(environment), 150);

有关兼容性和替代方法,请参见bind文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM