如果您没有太多时间,请告诉我'newTime'参数在以下代码中从何处获取其值。
查看下面的代码以了解。我不了解requestAnimationFrame(newTime => animate(newTime,time))
行的工作方式。参数'newTime'从未被声明过,我们也不会手动将值传递给它。
当我尝试理解不同的数组方法时,会发生相同的问题,通常在函数内部传递并使用参数,但是参数的值对我而言始终是未知的。例如,此代码段`array1.map(x => x * 2);。我们永远不会通过“ x”,我们永远不会知道它的值。
代码如下:
let cat = document.querySelector("img");
let angle = Math.PI / 2;
function animate(time, lastTime) {
if (lastTime != null) {
angle += (time - lastTime) * 0.001;
}
cat.style.top = (Math.sin(angle) * 20) + "px";
cat.style.left = (Math.cos(angle) * 200) + "px";
requestAnimationFrame(newTime => animate(newTime, time));
}
requestAnimationFrame(animate);
答案 0 :(得分:0)
您看到的是es6匿名函数(某些语言称为这些lambda函数)声明。 newTime
只是该匿名函数的命名参数。
requestAnimationFrame(newTime => animate(newTime, time));
与
相同requestAnimationFrame(function(newTime){
animate(newTime, time);
});