@pacan4ik

Как написать цепную функцию, которая после последнего вызова возвращает число, а не функцию?

Есть такой вид
add(1)(2)(3); // 6
Как написать функцию так, чтобы последний ее вызов в цепочке возвращал результат, а не функцию?
Например, раньше мне такие вещи казались простыми
function add(n){
	console.log(n);
  return add;
}
add(1)(2)

Но в этом случае я возвращаю функцию для этого, а не число и не могу понять, как мне последний вызов вернуть результат, а не функцию?

var addTwo = add(2);
addTwo; // 2
addTwo + 5; // 7
addTwo(3); // 5
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Если строго не ограничивать число шагов - никак.
Можно прописать методы valueOf\toString и проч, но это не изменит того что возвращается на самом деле функция.
Можно сделать асинхронную функцию, тогда await add(1)(2)(3) будет работать, но это немного не то.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы