Ambiente Lessicale delle Funzioni in JavaScript
Tutte le variabili esterne accessibili alla funzione sono chiamate il suo ambiente lessicale (LexicalEnvironment).
Nel seguente esempio, la funzione ha accesso a due
variabili: num1 e num2, che
costituiscono l'ambiente lessicale della nostra funzione:
let num1 = 1;
let num2 = 2;
function func() {
// la funzione conosce le variabili num1 e num2
}
L'ambiente lessicale stesso è un oggetto interno di JavaScript, associato alla nostra funzione. In questo caso, può essere rappresentato nel seguente modo:
{num1: 1, num2: 2}
Il valore di qualsiasi variabile dell'ambiente lessicale è sempre uguale al valore corrente di quella variabile:
let num1 = 1; // ambiente {num1: 1}
let num2 = 2; // ambiente {num1: 1, num2: 2}
// Cambiamo la variabile num1:
num1 = 123; // ambiente {num1: 123, num2: 2}
function func() {
}
Quando tentiamo di accedere a una variabile all'interno di una funzione, quella variabile viene prima cercata tra le variabili locali della funzione e, se non viene trovata lì, allora viene cercata nell'ambiente lessicale della funzione.