1
我是功能編程的新手,並試圖通過對一些關鍵的Underscore函數進行反向工程來收集知識。由於_.each是基礎性的,我可以從那裏開始。這裏是我的相比下來(爲簡單起見)版本沒有錯誤檢查,語境結合,和一堆其他下劃線迷死:瞭解下劃線的_each
var myEach = function(collection, iterator) {
if (collection instanceof Array) {
for (var i = 0; i < collection.length; i++) {
iterator(collection[i], i, collection);
}
} else {
for (var key in collection) {
iterator(collection[key], key, collection);
}
}
};
一般性意見是值得歡迎的,但我的問題特別是圍繞這些(collection[i], i, collection)
參數傳遞給iterator
。
這是怎麼回事?這些參數在使用過程中如何變得可選?
很確定它與對象有關,但我真的很想知道幕後發生了什麼。
謝謝!