javascript – requestAnimationFrame范围更改为窗口

前端之家收集整理的这篇文章主要介绍了javascript – requestAnimationFrame范围更改为窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个看起来像这样的对象链:
Game.world.update()

我想使用requestAnimationFrame来确定此函数的帧速率.

但是,当我像这样实现它:

World.prototype.update = function()
{
    requestAnimationFrame(this.update);
}

范围从世界对象更改为窗口对象.在调用requestAnimationFrame()时如何维护我想要的范围?我知道它与匿名函数等有关,但我无法理解它.

解决方法

通常的方法,无处不在:
World.prototype.update = function()
{
    var self = this;
    requestAnimationFrame(function(){self.update()});
}

或者使用ES5 Function.prototype.bind(compatibility):

World.prototype.update = function()
{
    requestAnimationFrame(this.update.bind(this)});
}

猜你在找的JavaScript相关文章