> Может ли быть несколько экземпляров лексического окружения замыкания в JavaScript (JavaScript)

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

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

Стек: JavaScript

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

Да, может. Каждый вызов функции, создающей замыкание, порождает новый, независимый экземпляр лексического окружения.

Например:

JAVASCRIPT
function createCounter() {
let count = 0; // Лексическое окружение для каждого вызова - своё
return function() {
count++;
return count;
};
}
const counter1 = createCounter(); // Создаётся окружение №1 (count = 0)
const counter2 = createCounter(); // Создаётся окружение №2 (count = 0)
console.log(counter1()); // 1 (окружение №1)
console.log(counter1()); // 2 (окружение №1)
console.log(counter2()); // 1 (окружение №2)

Каждое замыкание (counter1 и counter2) "запоминает" своё собственное лексическое окружение, созданное при вызове createCounter. Они не пересекаются и существуют независимо, пока на них есть ссылки.

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

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