Leksičko okruženje funkcija u JavaScript-u
Sve spoljne, funkciji dostupne promenljive, zovu se njeno leksičko okruženje (LexicalEnvironment).
U sledećem primeru funkciji su dostupne dve
promenljive: num1 i num2, koje
i jesu leksičko okruženje naše funkcije:
let num1 = 1;
let num2 = 2;
function func() {
// funkcija zna za promenljive num1 i num2
}
Samo leksičko okruženje predstavlja neki unutrašnji objekat JavaScript-a, pridružen našoj funkciji. U ovom slučaju može se predstaviti u sledećem obliku:
{num1: 1, num2: 2}
Vrednost bilo koje promenljive leksičkog okruženja uvek je jednaka trenutnoj vrednosti te promenljive:
let num1 = 1; // okruženje {num1: 1}
let num2 = 2; // okruženje {num1: 1, num2: 2}
// Promenimo promenljivu num1:
num1 = 123; // okruženje {num1: 123, num2: 2}
function func() {
}
Kada pokušamo da pristupimo bilo kojoj promenljivoj unutar funkcije, ta promenljiva se prvo traži među lokalnim promenljivim funkcije i, ako takve promenljive tamo nema, onda se traži u leksičkom okruženju funkcije.