Lexikalische Umgebung von Funktionen in JavaScript
Alle externen, für die Funktion zugänglichen Variablen werden als ihre lexikalische Umgebung (LexicalEnvironment) bezeichnet.
Im folgenden Beispiel sind der Funktion zwei
Variablen zugänglich: num1 und num2, die
die lexikalische Umgebung unserer Funktion bilden:
let num1 = 1;
let num2 = 2;
function func() {
// die Funktion kennt die Variablen num1 und num2
}
Die lexikalische Umgebung selbst ist ein bestimmtes internes JavaScript-Objekt, das an unsere Funktion gebunden ist. In diesem Fall kann man es sich wie folgt vorstellen:
{num1: 1, num2: 2}
Der Wert einer beliebigen Variable der lexikalischen Umgebung ist immer gleich dem aktuellen Wert dieser Variable:
let num1 = 1; // Umgebung {num1: 1}
let num2 = 2; // Umgebung {num1: 1, num2: 2}
// Ändern wir die Variable num1:
num1 = 123; // Umgebung {num1: 123, num2: 2}
function func() {
}
Wenn wir versuchen, innerhalb einer Funktion auf eine beliebige Variable zuzugreifen, wird diese Variable zunächst in den lokalen Variablen der Funktion gesucht. Wenn es dort keine solche Variable gibt, wird sie in der lexikalischen Umgebung der Funktion gesucht.