Ответ
Лексическое окружение (Lexical Environment) — это внутренняя структура в JavaScript, которая хранит связь между идентификаторами (переменными, функциями) и их значениями в текущей области видимости. Оно состоит из двух частей:
- Environment Record — запись, хранящая переменные и их значения.
- Ссылка на внешнее окружение (outer) — связь с родительским лексическим окружением.
Пример:
function outer() {
let x = 10;
function inner() {
console.log(x); // 10 (берет из внешнего окружения)
}
inner();
}
outer();Особенности:
- Создается при запуске функции/блока кода.
- Определяет доступ к переменным (scope).
- Вложенные функции имеют доступ к переменным родительских функций (замыкания).