//iterator(value, key, collection)
_.each = function(collection, iterator) { //takes in collection of values and a functino called iterator
if(Array.isArray(collection)) { //if collection is array, proceed
for (var key = 0; key < collection.length; key++) { //iterates over the length of collection
iterator(collection[key], key, collection);//plugs in individual element value, index of element, and array var
}
} else {
for (var objKey in collection) {
iterator(collection[objKey], objKey, collection);
}
}
};
_.indexOf = function(array, target){
var result = -1; //set result to -1
_.each(array, function(item, index) {
if (item === target && result === -1) {
result = index;
}
});
return result;
};
//example of input
_.indexOf = function([1, 2, 3], 2)
Я не могу понять смысл этих функций. В частности, где функция _.each используется внутри присваивания переменной ._indexOf. В строке кода, где выполняется ._each (массив, функция (элемент, индекс)). Затем используются ли результаты этой функции для подключения к функции функции (элемент, индекс) или наоборот? он знает, какие параметры item & index для этой переменной?