Lexicale omgeving van functies in JavaScript
Alle externe, voor de functie toegankelijke variabelen, worden haar lexicale omgeving genoemd (LexicalEnvironment).
In het volgende voorbeeld zijn twee variabelen
toegankelijk voor de functie: num1 en num2, die
de lexicale omgeving van onze functie vormen:
let num1 = 1;
let num2 = 2;
function func() {
// de functie kent de variabelen num1 en num2
}
De lexicale omgeving zelf is een soort intern JavaScript-object, gebonden aan onze functie. In dit geval kan het als volgt worden weergegeven:
{num1: 1, num2: 2}
De waarde van elke variabele in de lexicale omgeving is altijd gelijk aan de huidige waarde van die variabele:
let num1 = 1; // omgeving {num1: 1}
let num2 = 2; // omgeving {num1: 1, num2: 2}
// Laten we de variabele num1 wijzigen:
num1 = 123; // omgeving {num1: 123, num2: 2}
function func() {
}
Wanneer we proberen toegang te krijgen tot een variabele in een functie, wordt deze variabele eerst gezocht tussen de lokale variabelen van de functie en, als deze daar niet aanwezig is, wordt deze gezocht in de lexicale omgeving van de functie.