gpt4 book ai didi

带参数调用的javascript函数不带参数

转载 作者:行者123 更新时间:2023-11-28 12:36:19 25 4
gpt4 key购买 nike

有人可以告诉我它是如何工作的吗例如

function animate(t) {   
sun.rotation.y = t/1000;
renderer.clear();
camera.lookAt(sun.position);
renderer.render(scene, camera);
window.requestAnimationFrame(animate, renderer.domElement);
};
animate(new Date().getTime());

如您所见,animate() 函数具有参数“t”。我们用它来调用这个函数。但在 animate() 函数 requestAnimationFrame 中调用它时没有使用“t”,并且程序完美运行..我很困惑

最佳答案

一般情况

Javascript 不要求您传递函数中的所有参数。如果您不传递参数,该变量将默认为未定义。

您还可以传递比函数指定的参数更多的参数,然后使用参数对象访问它们,参数对象是一个类似数组的对象,保存传递给函数的所有参数。因此,在您的示例中,t实际上是arguments[0]的简写。所以你可以有类似下面的东西。

function sumTwoNumbers(){
return arguments[0] + arguments[1]
}

sumTwoNumbers(2,3) //returns 5

或者像这样

function getTwo(a,b,c,d) {
return 2;
}

getTwo(); //returns 2 with no errors

您的案例

But inside the animate() func requestAnimationFrame calls it without "t"

还应该注意的是,如果没有参数,则不会调用该函数。 'animate' 作为参数传递给另一个函数(该函数可能会在某个时刻调用该函数本身)。当随后不使用 () 引用函数时,它将作为对象传递,而不是执行。函数也是 JS 中的对象,因此可以像任何其他对象一样传递给函数。以下内容完全有效

function a(x){
return x+2;
}

function b(y,z){
return y(z);
}

b(a,2); //returns 4

关于带参数调用的javascript函数不带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637972/

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