Leksisk omgivelse for funksjoner i JavaScript
Alle eksterne, tilgjengelige funksjonsvariabler, kalles dens leksiske omgivelse (LexicalEnvironment).
I følgende eksempel er to variabler tilgjengelige for funksjonen:
num1 og num2, som
utgjør den leksiske omgivelsen for vår funksjon:
let num1 = 1;
let num2 = 2;
function func() {
// funksjonen kjenner til variablene num1 og num2
}
Selve den leksiske omgivelsen representerer et slags internt JavaScript-objekt, bundet til vår funksjon. I dette tilfellet kan den representeres på følgende måte:
{num1: 1, num2: 2}
Verdien til enhver variabel i den leksiske omgivelsen er alltid lik den nåværende verdien til denne variabelen:
let num1 = 1; // omgivelse {num1: 1}
let num2 = 2; // omgivelse {num1: 1, num2: 2}
// La oss endre variabelen num1:
num1 = 123; // omgivelse {num1: 123, num2: 2}
function func() {
}
Når vi prøver å få tilgang til en hvilken som helst variabel inne i en funksjon, søkes denne variabelen først blant de lokale variablene til funksjonen og, hvis det ikke finnes en slik variabel der, søkes den i funksjonens leksiske omgivelse.