当我将对象作为参数传递时,JavaScript抛出:“不是函数”

时间:2015-04-27 11:41:47

标签: javascript

这是我的简单代码:

{{1}}

当我运行此代码时,出现错误“ctx.clearRect不是函数”,但是当我从方法动画中的canvas获取上下文而不是将其作为参数传递时它正在工作。

1 个答案:

答案 0 :(得分:7)

您必须在下一个时间点传递ctx上下文,否则ctx参数为undefinedundefined没有方法clearRect

function animate(ctx) {
    ctx.clearRect(0,0,500,500);
    ctx.fillRect(x, y, 20, 20);
    ctx.save();
    x++;
    window.requestAnimationFrame(function() {
        animate(ctx);
    });
}

FIDDLE