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:

javascriptlet 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:

javascript{num1: 1, num2: 2}

Verdien til enhver variabel i den leksiske omgivelsen er alltid lik den nåværende verdien til denne variabelen:

javascriptlet 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.