Что такое замыкание в JavaScript? Объясните на примере счётчика.

Замыкание — это функция вместе с лексическим окружением, в котором она была создана. Это значит, что функция «запоминает» переменные из внешней области видимости, даже если эта внешняя функция уже завершила выполнение.

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

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

Замыкание — это функция вместе с лексическим окружением, в котором она была создана. Это значит, что функция «запоминает» переменные из внешней области видимости, даже если эта внешняя функция уже завершила выполнение.

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

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

Замыкание — это функция вместе с лексическим окружением, в котором она была создана. Это значит, что функция «запоминает» переменные из внешней области видимости, даже если эта внешняя функция уже завершила выполнение.

Пример:

function makeCounter() {
  let count = 0;
  return function() {
    count++;
    return count;
  };
}

const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку