Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2020, 01:29
Новичок на форуме
Отправить личное сообщение для Coreman Посмотреть профиль Найти все сообщения от Coreman
 
Регистрация: 09.06.2020
Сообщений: 5

Передача функции в функцию
Всем привет!
Не совсем понимаю как работает передача функция в функцию в этом примере :
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.почему?
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2020, 01:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,596

Сообщение от Coreman
что здесь происходит?
суммирование значений , которые вернёт функция f, если функция не задана, то по умолчанию f вернёт то что получила f = x => x;
1 + 2 + 3
Сообщение от Coreman
почему здесь 14?
x => x * x
1*1 + 2*2 + 3*3 = 14
Ответить с цитированием
  #3 (permalink)  
Старый 01.12.2020, 18:37
Новичок на форуме
Отправить личное сообщение для Coreman Посмотреть профиль Найти все сообщения от Coreman
 
Регистрация: 09.06.2020
Сообщений: 5

Спасибо!А как вообще часто такую реализацию ф-ии используют на практике? И также интересно как часто используют возвращение функции из
функции :

function newSummer(f){
return arr => sum(arr, f);
}
const new sumOfSquares = newSummer(x=>x*x);
console.log(sumOfSquares[1,2,3]);
Ответить с цитированием
  #4 (permalink)  
Старый 01.12.2020, 21:29
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 820

Сообщение от Coreman
А как вообще часто такую реализацию ф-ии используют на практике? И также интересно как часто используют возвращение функции из функции
это повсеместная практика, краеугольные камни, так сказать.
передача функции - колбеки всех видов, промисы, методы массивов.
возврат функций - каррирование, декораторы, замыкания..
в реакте вообще можно миллион примеров привести.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача аргументов из одной функции в другую DivMan Общие вопросы Javascript 2 06.09.2016 06:39
Передача дополнительных аргументов при вызове функции James Brown Общие вопросы Javascript 1 05.09.2016 10:27
Передача переменных из eventListener`a другой функции Ch@r2411 Events/DOM/Window 3 20.07.2016 19:48
Передача значения X в функцию Delta (JS Animation) max0n Общие вопросы Javascript 14 15.10.2014 17:55
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 18:21