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() {
}
Функция ішінде қандай да бір айнымалыға жетуге тырған кезде, бұл айнымалы алдымен функцияның жергілікті айнымалыларының арасынан ізделеді және егер ондай айнымалы болмаса, онда функцияның лексикалық қоршаған ортасынан ізделеді.