Передача функции в функцию
Всем привет!
Не совсем понимаю как работает передача функция в функцию в этом примере : 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, время: 14:45. |