[forEach callback]使用三个参数调用:
元素值
元素索引
正在遍历的数组
然而,这对我来说有点不清楚。这三个论点都是必要的吗?我写的具体回调不会使用任何这些值。我是否要申报,或者我可以安全地跳过它们吗?
答案 0 :(得分:5)
你可以放心地跳过它们。
你永远不必声明函数参数。通常,无论您是否准备好接收它们的回调,值都将被传递给回调 - 只有当您的函数需要使用这些参数时才重要。
一个例子是任何事件回调,例如,事件对象 - 报告发生的事情 - 总是作为第一个参数传递。
foo.addEventListener('click', function(evt) {
//if I never reference the evt object, I need not define the evt argument
}, false);
答案 1 :(得分:1)
与大多数语言不同,javascript不会对调用函数的参数数量执行任何检查。由于javascript回调只是函数,因此对于回调也是如此。
function a(arg1){
console.log(arg1);
}
可以调用
函数a
a(); // prints undefined
a(1); // prints 1
a(1,2); // prints 1
或任意数量的论点。
如果调用的函数的数量少于定义中的参数,则缺少的参数将设置为undefined
。
调用函数的所有参数都可用作局部变量arguments