我知道forEach在JavaScript调用我的回调函数,有三个参数:什么是的forEach回调函数的第三个参数的点在JavaScript
arr.forEach(function callback(currentValue, index, array) {
//your iterator
})
在上面的例子arr
和array
是相同的阵列和arr
存在回调函数关闭。
现在的问题是什么点将array
传递给回调函数?
我知道forEach在JavaScript调用我的回调函数,有三个参数:什么是的forEach回调函数的第三个参数的点在JavaScript
arr.forEach(function callback(currentValue, index, array) {
//your iterator
})
在上面的例子arr
和array
是相同的阵列和arr
存在回调函数关闭。
现在的问题是什么点将array
传递给回调函数?
如果你的回调函数在其他地方宣布:
function forEachCallback(value, i, array) {
// ...
}
然后,它不知道它正在使用的阵列为:
someArray(forEachCallback);
因为数组被作为最后一个参数传递,这样的回调可以访问它。
该回调不必与forEach
调用的范围相同。在这种情况下,第三个参数将确保回调对该数组有一些引用。
从功能编程的角度来看,它可以让你保持功能的纯净。 – haim770
我想它可能是对未存储在变量中的数组文字的引用。 '[1,2,3] .forEach(function(elem,index,arrayReference){...});' – mhodges