Funktioners leksikalske omgivelse i JavaScript
Alle eksterne, tilgængelige funktionsvariabler kaldes dens leksikalske omgivelse (LexicalEnvironment).
I følgende eksempel er der to variabler tilgængelige for funktionen:
num1 og num2, som
udgør den leksikalske omgivelse for vores funktion:
let num1 = 1;
let num2 = 2;
function func() {
// funktionen kender til variablerne num1 og num2
}
Selve den leksikalske omgivelse repræsenterer et eller andet internt JavaScript-objekt, der er bundet til vores funktion. I dette tilfælde kan den repræsenteres på følgende måde:
{num1: 1, num2: 2}
Værdien af enhver variabel i den leksikalske omgivelse er altid lig med den aktuelle værdi af denne variabel:
let num1 = 1; // omgivelse {num1: 1}
let num2 = 2; // omgivelse {num1: 1, num2: 2}
// Lad os ændre variablen num1:
num1 = 123; // omgivelse {num1: 123, num2: 2}
function func() {
}
Når vi forsøger at få adgang til en hvilken som helst variabel inde i funktionen, søges denne variabel først blandt funktionens lokale variabler og, hvis der ikke er en sådan variabel der, søges den i funktionens leksikalske omgivelse.