我正在尝试在Firefox中调用mozRequestAnimationFrame,但我一直收到错误消息。这是我的代码:

var obj={
    animFrame:mozRequestAnimationFrame
}

var animF=mozRequestAnimationFrame;

function a(){
 console.log('a called');
}

animF(a);

obj.animFrame(a);


obj.animFrame(a);发生错误,我收到以下错误消息:


  对WrappedNative原型对象的非法操作


我在SO上找到了该线程:requestAnimationFrame with this keyword
然后发现requestanimationframe可能没有正确的“ this”上下文,所以我尝试了

obj.animFrame(a).bind(window);


但仍然收到相同的错误消息。那么为什么会发生错误呢?

最佳答案

我不知道为什么需要将指向requestAnimationFramemozRequestAnimationFrame)的指针保存到某个对象中,但是尝试下一个代码来避免错误:

var obj={
    animFrame:mozRequestAnimationFrame.bind(window)
}

function a(){
 console.log('a called');
}

obj.animFrame(a);

08-17 12:39