Создание счётчика через замыкание

Внешняя функция создаёт отдельный счётчик и возвращает функцию, которая увеличивает его. Замыкание сохраняет переменную между вызовами, не выставляя её наружу.

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

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

Внешняя функция создаёт отдельный счётчик и возвращает функцию, которая увеличивает его. Замыкание сохраняет переменную между вызовами, не выставляя её наружу.

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

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

Условие

Реализуйте функцию, которая при вызове возвращает внутреннюю функцию‑счётчик. Внутренний счётчик должен хранить своё состояние с помощью замыкания, увеличивая значение на 1 при каждом вызове и возвращая новое значение. Переменные можно переименовать, но все блоки кода должны оставаться без изменений.

Ответ

Внешняя функция создаёт отдельный счётчик и возвращает функцию, которая увеличивает его. Замыкание сохраняет переменную между вызовами, не выставляя её наружу.

function createCounter() {
  let count = 0;
  return function () { return ++count; };
}
const next = createCounter();
console.log(next()); // 1
console.log(next()); // 2

Другой вызов createCounter() создаст независимое состояние, снова начиная с единицы. Если объявить count внутри возвращённой функции, он будет обнуляться каждый раз. Исходные блоки для ограничения «не менять код» в условии не приведены, поэтому показана самостоятельная реализация указанного поведения.

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

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

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

Подробнее