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