我知道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