我一直在使用高阶函数并取得了一些成功,但我对回调参数的工作方式感到有些困惑。例如,Reduce有一些参数(accumulator,currentValue等)。命名似乎并不重要。如果需要,我可以用'acc'替换累加器的使用,或者用完全不同的单词替换它。这使我相信按照给出的顺序减少解释参数。这是对的吗?
如果是这样,我如何表明我只需要在列表中稍后使用参数?假设我只打算使用currentIndex。我是否需要在currentIndex(accumulator和currentValue)之前输入两个参数值,即使我没有使用它们?
答案 0 :(得分:1)
这让我相信按顺序减少解释参数 他们得到了。这是对的吗?
是的,参数的顺序是重要的,命名并不重要,除了名称可能有助于您更好地确定参数的目的。
如果是这样,我如何表明我以后只需要使用参数 列表?让我们说我只打算使用currentIndex。我需要吗? 在currentIndex(累加器)之前输入两个参数值 和currentValue)即使我没有使用它们?
是的,您需要输入所有参数名称"到达"你想要的参数。
你不一定要使用这些参数。例如:
function hello () {
return "hi"
}
console.log([1, 2, 3, 4].reduce(hello)) // prints "hi"
愚蠢的例子,但我想表明我实际上并没有使用任何reduce
函数参数,只是返回我想要的任何内容。这仍然有效,但显然违背了使用reduce
函数的目的。
感谢@ andrew-li,如果你根本不打算使用给定的参数,请将变量命名为容易确定它是未使用变量的变量:
function hello (dummy1, dummy2, cidx) {
return cidx
}
console.log([1, 2, 3, 4].reduce(hello)) // 4