Funktsioonide leksikaalne keskkond JavaScriptis
Kõik funktsioonile kättesaadavad välised muutujad kutsutakse selle leksikaalseks keskkonnaks (LexicalEnvironment).
Järgmises näites on funktsioonile kättesaadavad kaks
muutujat: num1 ja num2, mis
ongi meie funktsiooni leksikaalne keskkond:
let num1 = 1;
let num2 = 2;
function func() {
// funktsioon teab muutujatest num1 ja num2
}
Leksikaalne keskkond ise on mingisugune JavaScripti sisemine objekt, mis on seotud meie funktsiooniga. Sel juhul võib seda esitada järgmisel kujul:
{num1: 1, num2: 2}
Leksikaalse keskkonna mis tahes muutuja väärtus on alati võrdne selle muutuja praeguse väärtusega:
let num1 = 1; // keskkond {num1: 1}
let num2 = 2; // keskkond {num1: 1, num2: 2}
// Muudame muutujat num1:
num1 = 123; // keskkond {num1: 123, num2: 2}
function func() {
}
Kui me püüame funktsiooni sees juurdepääsu mõnele muutujale, otsitakse seda muutujat kõigepealt funktsiooni lokaalsete muutujate seas ja kui sellist muutujat seal pole, siis otsitakse seda funktsiooni leksikaalsest keskkonnast.