Mediul Lexical al Funcțiilor în JavaScript
Toate variabilele externe, accesibile funcției, se numesc mediul ei lexical (LexicalEnvironment).
În exemplul următor, funcției îi sunt accesibile două
variabile: num1 și num2, care
reprezintă mediul lexical al funcției noastre:
let num1 = 1;
let num2 = 2;
function func() {
// funcția știe despre variabilele num1 și num2
}
Însuși mediul lexical reprezintă un fel de obiect intern JavaScript, legat de funcția noastră. În acest caz, acesta poate fi reprezentat în următoarea formă:
{num1: 1, num2: 2}
Valoarea oricărei variabile din mediul lexical este întotdeauna egală cu valoarea curentă a acelei variabile:
let num1 = 1; // mediu {num1: 1}
let num2 = 2; // mediu {num1: 1, num2: 2}
// Să schimbăm variabila num1:
num1 = 123; // mediu {num1: 123, num2: 2}
function func() {
}
Când încercăm să accesăm orice variabilă în interiorul funcției, această variabilă este mai întâi căutată printre variabilele locale ale funcției și, dacă nu există o astfel de variabilă acolo, atunci este căutată în mediul lexical al funcției.