Leksično okolje funkcij v JavaScript
Vse zunanje spremenljivke, dostopne funkciji, se imenujejo njeno leksično okolje (LexicalEnvironment).
V naslednjem primeru so funkciji dostopni dve
spremenljivki: num1 in num2, ki
sta leksično okolje naše funkcije:
let num1 = 1;
let num2 = 2;
function func() {
// funkcija ve za spremenljivki num1 in num2
}
Samo leksično okolje predstavlja nek notranji objekt JavaScript, povezan z našo funkcijo. V tem primeru ga lahko predstavimo v naslednji obliki:
{num1: 1, num2: 2}
Vrednost katere koli spremenljivke leksičnega okolja je vedno enaka trenutni vrednosti te spremenljivke:
let num1 = 1; // okolje {num1: 1}
let num2 = 2; // okolje {num1: 1, num2: 2}
// Spremenimo spremenljivko num1:
num1 = 123; // okolje {num1: 123, num2: 2}
function func() {
}
Ko poskušamo dostopiti do katere koli spremenljivke znotraj funkcije, se ta spremenljivka najprej poišče med lokalnimi spremenljivkami funkcije in, če takšne spremenljivke tam ni, se poišče v leksičnem okolju funkcije.