如何向requestAnimationFrame的回调函数中传递参数

function drawAll(ball) {

    ctx.clearRect(0,0,864,664);

    drawBorder();

    ball.moveBall();

    ctx.drawImage(ball_img,ball.location_x,ball.location_y,2*ball.ballrad,2*ball.ballrad);

    requestAnimationFrame(drawall);

}

预想的是向drawall这个函数中传递ball这个对象,moveball是改变ball的位置,drawimage一行是根据ball的位置绘制ball,但这样做不能成功。
我知道可以用全局变量去实现,但求教有没有向callback中传参的方法呢,尤其是未来drawAll函数可能接受多个参数的情况下。

鸿蒙传说
浏览 1234回答 1
1回答

胡说叔叔

其实跟setTimeout类似,我们知道传参传的是一个函数,那么我们是不是可以用一个匿名函数来包裹这个函数的执行呢比如:function fn(fc){    console.log('fc:',fc)     fc++;     setTimeout(function(){         fn(fc)     },1000) } fn(1);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript