Funkcijų leksinė aplinka JavaScript
Visi išoriniai, funkcijai prieinami kintamieji, vadinami jos leksine aplinka (LexicalEnvironment).
Šiame pavyzdyje funkcijai prieinami du
kintamieji: num1 ir num2, kurie
ir yra mūsų funkcijos leksinė aplinka:
let num1 = 1;
let num2 = 2;
function func() {
// funkcija žino apie kintamuosius num1 ir num2
}
Pati leksinė aplinka yra tam tikras vidinis JavaScript objektas, pririštas prie mūsų funkcijos. Šiuo atveju ją galima pavaizduoti taip:
{num1: 1, num2: 2}
Bet kurio leksinės aplinkos kintamojo reikšmė visada yra lygi dabartinei šio kintamojo reikšmei:
let num1 = 1; // aplinka {num1: 1}
let num2 = 2; // aplinka {num1: 1, num2: 2}
// Pakeiskime kintamąjį num1:
num1 = 123; // aplinka {num1: 123, num2: 2}
function func() {
}
Kai bandome pasiekti bet kurį kintamąjį funkcijos viduje, šis kintamasis pirmiausia ieškomas tarp funkcijos lokalųjų kintamųjų ir, jei tokio kintamojo ten nėra, tada jis ieškomas funkcijos leksinėje aplinkoje.