Счётчик, реализованный через самовызывающееся выражение

IIFE создаёт закрытую переменную счётчика и возвращает функцию, которая читает и увеличивает её. Снаружи доступна только возвращённая функция.

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

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

IIFE создаёт закрытую переменную счётчика и возвращает функцию, которая читает и увеличивает её. Снаружи доступна только возвращённая функция.

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

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

Условие

Необходимо написать функцию, которая будет увеличивать своё внутреннее значение на 1 при каждом вызове, начиная с 0. В глобальном пространстве имён должна быть доступна только сама функция – никаких дополнительных переменных. Реализуйте решение, используя IIFE (Immediately Invoked Function Expression).

Ответ

IIFE создаёт закрытую переменную счётчика и возвращает функцию, которая читает и увеличивает её. Снаружи доступна только возвращённая функция.

const counter = (() => {
  let value = 0;
  return () => value++;
})();
// counter() → 0, затем 1, затем 2

Здесь «начиная с 0» означает ноль при первом вызове. Если первый результат должен быть 1, используйте ++value. Локальная value живёт благодаря замыканию и не становится отдельной глобальной переменной.

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

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

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

Подробнее