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() {
}
Функция ичида бирор ўзгарувчига мурожаат қилганда, аввал бу ўзгарувчи функциянинг локал ўзгарувчилари орасида изланади ва, агар у ерда бундай ўзгарувчи бўлмаса, у ҳолда функциянинг лексик муҳитида изланади.