0
每当我正在审阅并尝试重新编写代码时,我总会遇到错误和一些意外问题。我正在创建一个名为draw()
的函数对象,并试图将它推入到一个空数组中,以实现动画目的。代码如下:画布推送对象失败
function draw(){
var r = 20;
var x = Math.random()*canvas.width - r;
var y = Math.random()*canvas.height - r;
ctx.beginPath();
ctx.arc(x,y,r,Math.PI*2,false);
ctx.fillStyle='yellow';
ctx.fill();
}
myArray = [];
for(i=0;i<20;i++){
myArray.push(draw());
}
function animate(){
ctx.clearRect(0,0,canvas.width,canvas.height);
requestAnimationFrame(animate);
for(i=0;i<myArray.length;i++){
myArray[i];
}
}
animate();
当我检查在控制台myArray
对象,它只是弹出与undefined
值,这意味着有内部myArray
对象完全空20个对象。我坚持了2个小时,有人可以告诉我我在哪里出错了?提前致谢。
感谢@ NNNNNN现在我得到了这一点,用引用传递不应包括( ),因为我的函数对象中没有返回值。我只是想回顾一下我学到的东西,并且继续编写一些随机的东西来获得对画布材料的坚实感受:D感谢您的回复! – mystreie
即使你的函数确实返回了一个值,你仍然想使用一个*参考*函数,你不想调用它。所以不要在那个时候使用'()'。只有在你想调用它的地方使用'()'。 (如果函数的返回值本身是对某个函数的引用,则会发生异常。) – nnnnnn