Lexikálne prostredie funkcií v JavaScripte
Všetky externé, funkcii dostupné premenné, sa nazývajú jej lexikálne prostredie (LexicalEnvironment).
V nasledujúcom príklade sú funkcii dostupné dve
premenné: num1 a num2, ktoré
tvoria lexikálne prostredie našej funkcie:
let num1 = 1;
let num2 = 2;
function func() {
// funkcia pozná premenné num1 a num2
}
Samotné lexikálne prostredie predstavuje nejaký interný objekt JavaScriptu, priradený k našej funkcii. V tomto prípade ho môžeme znázorniť v nasledujúcej forme:
{num1: 1, num2: 2}
Hodnota akejkoľvek premennej lexikálneho prostredia sa vždy rovná aktuálnej hodnote tejto premennej:
let num1 = 1; // prostredie {num1: 1}
let num2 = 2; // prostredie {num1: 1, num2: 2}
// Zmeňme premennú num1:
num1 = 123; // prostredie {num1: 123, num2: 2}
function func() {
}
Keď sa pokúšame pristúpiť k akejkoľvek premennej vo vnútri funkcie, táto premenná sa najprv hľadá medzi lokálnymi premennými funkcie a ak sa tam taká premenná nenachádza, vyhľadáva sa v lexikálnom prostredí funkcie.