Лексический (статический) scope: доступность переменных определяется местом объявления в исходном коде, а не тем, откуда функцию вызвали.
Подробности
Вложенная функция видит переменные внешней.
functionouterFunction() {
let outerVariable = 'I am outside!';
functioninnerFunction() {
console.log(outerVariable); // I am outside!
}
innerFunction();
}
outerFunction();
Это основа замыканий: внутренняя функция «запоминает» окружение, где была создана.
Итог
Scope фиксируется при написании кода; вложенные функции читают внешние привязки по цепочке областей.