A függvények lexikális környezete a JavaScriptben
Minden külső, a függvény számára elérhető változót annak lexikális környezetének nevezünk (LexicalEnvironment).
A következő példában a függvény számára két változó
érhető el: num1 és num2, amelyek
éppen a függvényünk lexikális környezetét alkotják:
let num1 = 1;
let num2 = 2;
function func() {
// a függvény ismeri a num1 és num2 változókat
}
Maga a lexikális környezet egy bizonyos, a JavaScripthez tartozó belső objektum, amely a függvényünkhöz van kötve. Esetünkben a következő formában képzelhetjük el:
{num1: 1, num2: 2}
A lexikális környezet bármely változójának értéke mindig megegyezik az adott változó aktuális értékével:
let num1 = 1; // környezet {num1: 1}
let num2 = 2; // környezet {num1: 1, num2: 2}
// Változtassuk meg a num1 változót:
num1 = 123; // környezet {num1: 123, num2: 2}
function func() {
}
Amikor egy függvényen belül megpróbálunk hozzáférni egy változóhoz, ez a változó először a függvény helyi változói között keresi, és ha ott nem található, akkor a függvény lexikális környezetében folytatódik a keresés.