Перейти к содержимому
Задача · Замыкания и this · урок 9 из 11

Задача: вызвать один раз

Напишите функцию function once(fn), которая возвращает новую функцию. При первом вызове новая функция вызывает fn со всеми своими аргументами и возвращает результат fn. Следующие вызовы новой функции не вызывают fn и возвращают результат первого вызова.

  • const f = once((x) => x * 2), затем f(5) → 10
  • следующий вызов f(7) → 10
  • once((a, b) => a + b)(2, 3) → 5

Ограничения: аргументов от нуля до трёх; результат первого вызова возвращается и тогда, когда он равен 0; у каждой функции, созданной отдельным вызовом once, свой первый вызов.

Не добавляйте лишних импортов, если в задаче это прямо не сказано.

once.js — javascript
javascript · строк: 4
Ctrl+Enter запуск · Esc выйти из редактора

Подпишись, чтобы пройти курс

Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.

Войти другим способом