Функция первого вызова принимает первое число и возвращает функцию для второго. Второй вызов завершает вычисление и возвращает сумму двух чисел.
Курированная функция вычисления суммы двух чисел
Функция первого вызова принимает первое число и возвращает функцию для второго. Второй вызов завершает вычисление и возвращает сумму двух чисел.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Функция, вызываемая последовательно с двумя параметрами, которая возвращает их сумму.
Ответ
Функция первого вызова принимает первое число и возвращает функцию для второго. Второй вызов завершает вычисление и возвращает сумму двух чисел.
function sum(first) {
return function (second) {
return first + second;
};
}
sum(3)(4); // 7
sum(-2)(5); // 3
Это каррирование: first хранится в замыкании до следующего вызова. Краткая запись — const sum = a => b => a + b. Дополнительный пустой вызов не нужен, поскольку число аргументов фиксировано. Передача двух аргументов одним вызовом не соответствует этому контракту.