> Пример замыкания с внутренней функцией и предмет замыкания в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Кэтрид Диджитал

Стек: JavaScript

> Пример ответа

Замыкание (closure) в JavaScript - это комбинация функции и лексического окружения, в котором эта функция была объявлена. Внутренняя функция «запоминает» переменные из внешней функции даже после того, как внешняя функция завершила выполнение.

Пример:

JAVASCRIPT
function createCounter() {
let count = 0; // переменная из внешней функции
return function() { // внутренняя функция - замыкание
count++;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3

Предмет замыкания это сама внутренняя функция (function() { count++; return count; }), которая «захватывает» переменную count из лексического окружения createCounter. Даже после того, как createCounter завершила работу, counter продолжает иметь доступ к count, потому что замыкание хранит ссылку на это окружение. Таким образом, замыкание позволяет создавать приватные переменные и сохранять состояние между вызовами.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью