JavaScript中forEach回调函数的第三个参数是什么?

时间:2017-04-19 15:44:53

标签: javascript arrays foreach

我知道JavaScript中的forEach使用三个参数调用我的回调函数:

arr.forEach(function callback(currentValue, index, array) {
    //your iterator
})

在上面的示例中,arrarray是相同的数组,并且回调函数闭包中存在arr

现在问题是将array传递给回调函数是什么意思?

2 个答案:

答案 0 :(得分:9)

如果您的回调函数在其他地方声明:

function forEachCallback(value, i, array) {
  // ...
}

然后它不知道它用于什么阵列:

someArray.forEach(forEachCallback);

因为数组作为最后一个参数传递,所以这样的回调可以访问它。

答案 1 :(得分:5)

回调不必与forEach调用的范围相同。在这种情况下,第三个参数将确保回调对该数组有一些引用。