gpt4 book ai didi

JavaScript 抛出 : "is not a function" when I pass object as argument

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:22 26 4
gpt4 key购买 nike

这是我的简单代码:

var x = 0, y = 0;

function start() {
var canvas = document.getElementById("myCanvas"), ctx = canvas.getContext("2d");

animate(ctx);
}

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

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

最佳答案

你必须在下一个 tick 传递 ctx 上下文,否则 ctx 参数是 undefined,并且 undefined 没有方法 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

关于JavaScript 抛出 : "is not a function" when I pass object as argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29894720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com