Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmClLE 260 of 505 menu
Хочешь читать code.mu на своем родном языке? Помоги с переводом! Переведем мы сами, тебе нужно указать на ошибки перевода:) Оставляй заявку ->

Лексическое окружение функций в JavaScript

Все внешние, доступные функции переменные, называются ее лексическим окружением (англ. LexicalEnvironment).

В следующем примере функции доступны две переменные: num1 и num2, которые и являются лексическим окружением нашей функции:

let num1 = 1; let num2 = 2; function func() { // функция знает про переменные num1 и num2 }

Само лексическое окружение представляет собой некий внутренний объект JavaScript, привязанный к нашей функции. В данном случае его можно представить в следующем виде:

{num1: 1, num2: 2}

Значение любой переменной лексического окружения всегда равно текущему значению этой переменной:

let num1 = 1; // окружение {num1: 1} let num2 = 2; // окружение {num1: 1, num2: 2} // Поменяем переменную num1: num1 = 123; // окружение {num1: 123, num2: 2} function func() { }

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

byenru