我知道JavaScript中的forEach使用三个参数调用我的回调函数:
arr.forEach(function callback(currentValue, index, array) {
//your iterator
})
在上面的示例中,arr
和array
是相同的数组,并且回调函数闭包中存在arr
。
现在问题是将array
传递给回调函数是什么意思?
答案 0 :(得分:9)
如果您的回调函数在其他地方声明:
function forEachCallback(value, i, array) {
// ...
}
然后它不知道它用于什么阵列:
someArray.forEach(forEachCallback);
因为数组是作为最后一个参数传递,所以这样的回调可以访问它。
答案 1 :(得分:5)
回调不必与forEach
调用的范围相同。在这种情况下,第三个参数将确保回调对该数组有一些引用。