Funkciju leksiskā vide JavaScript

Visus ārējos, funkcijai pieejamos mainīgos, sauc par tās leksisko vidi (LexicalEnvironment).

Nākamajā piemērā funkcijai ir pieejami divi mainīgie: num1 un num2, kas ir mūsu funkcijas leksiskā vide:

javascriptlet num1 = 1;
let num2 = 2;

function func() {
  // funkcija zina par mainīgajiem num1 un num2
}

Pati leksiskā vide ir sava veida iekšējs JavaScript objekts, kas piesaistīts mūsu funkcijai. Šajā gadījumā to var attēlot šādi:

javascript{num1: 1, num2: 2}

Jebkura leksiskās vides mainīgā vērtība vienmēr ir vienāda ar šī mainīgā pašreizējo vērtību:

javascriptlet num1 = 1; // vide {num1: 1}
let num2 = 2; // vide {num1: 1, num2: 2}

// Mainīsim mainīgo num1:
num1 = 123; // vide {num1: 123, num2: 2}

function func() {
  
}

Kad mēs mēģinām piekļūt kādam mainīgajam funkcijas iekšienē, šis mainīgais vispirms tiek meklēts starp funkcijas lokālajiem mainīgajiem un, ja tāda mainīgā tur nav, tad tas tiek meklēts funkcijas leksiskajā vidē.