Передача функции в функцию
Всем привет!
Не совсем понимаю как работает передача функция в функцию в этом примере :
function sum(arr, f){
if(typeof f != 'function')
f = x => x;
return arr.reduce((a,x) => a += f(x),0); // что здесь происходит?
}
console.log(sum([1,2,3])); //6
console.log(sum([1,2,3], x => x * x)); // почему здесь 14?
Как работает f,это же вроде пустая ф-я,но ф-я, при вызове typeof f будет undefined.почему? |
Цитата:
1 + 2 + 3 Цитата:
1*1 + 2*2 + 3*3 = 14 |
Спасибо!А как вообще часто такую реализацию ф-ии используют на практике? И также интересно как часто используют возвращение функции из
функции :
function newSummer(f){
return arr => sum(arr, f);
}
const new sumOfSquares = newSummer(x=>x*x);
console.log(sumOfSquares[1,2,3]);
|
Цитата:
передача функции - колбеки всех видов, промисы, методы массивов. возврат функций - каррирование, декораторы, замыкания.. в реакте вообще можно миллион примеров привести. |
| Часовой пояс GMT +3, время: 08:02. |