Замыкание — это функция вместе с лексическим окружением, в котором она была создана. Это значит, что функция «запоминает» переменные из внешней области видимости, даже если эта внешняя функция уже завершила выполнение.
Что такое замыкание в JavaScript? Объясните на примере счётчика.
Замыкание — это функция вместе с лексическим окружением, в котором она была создана. Это значит, что функция «запоминает» переменные из внешней области видимости, даже если эта внешняя функция уже завершила выполнение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Замыкание — это функция вместе с лексическим окружением, в котором она была создана. Это значит, что функция «запоминает» переменные из внешней области видимости, даже если эта внешняя функция уже завершила выполнение.
Пример:
function makeCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2
Здесь внутренняя функция замыкает переменную count из внешней функции makeCounter, сохраняя её состояние между вызовами.