Как реализовать цепочку add(2)(3)(4) с явным результатом?

Верните функцию next, которая изменяет закрытую сумму и возвращает сама себя. Метод value читает эту сумму; каждый начальный вызов add создаёт независимую цепочку.

Короткий ответ

Что ответить на собеседовании

Верните функцию next, которая изменяет закрытую сумму и возвращает сама себя. Метод value читает эту сумму; каждый начальный вызов add создаёт независимую цепочку.

Подробный разбор

Ответ с пояснениями

Условие

Нужна функция add, принимающая число и возвращающая вызываемую функцию для следующих слагаемых. Результат читается через .value(), например add(2)(3)(4).value() должно дать 9. Не используйте неявное преобразование объекта в число.

Ответ

Верните функцию next, которая изменяет закрытую сумму и возвращает сама себя. Метод value читает эту сумму; каждый начальный вызов add создаёт независимую цепочку.

function add(initial) {
  let total = initial;
  function next(value) { total += value; return next; }
  next.value = () => total;
  return next;
}
console.log(add(2)(3)(4).value()); // 9

Это изменяемая цепочка: две ссылки на один next разделяют сумму. Если нужны независимые ветви вычисления, каждый шаг должен возвращать новый объект или новую функцию с собственным total. Вход по условию состоит только из чисел.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее