Environnement lexical des fonctions en JavaScript
Toutes les variables externes accessibles à une fonction sont appelées son environnement lexical (LexicalEnvironment).
Dans l'exemple suivant, la fonction a accès à deux
variables : num1 et num2, qui
constituent l'environnement lexical de notre fonction :
let num1 = 1;
let num2 = 2;
function func() {
// la fonction connaît les variables num1 et num2
}
L'environnement lexical lui-même est un certain objet interne JavaScript, lié à notre fonction. Dans ce cas, on peut le représenter sous la forme suivante :
{num1: 1, num2: 2}
La valeur de toute variable de l'environnement lexical est toujours égale à la valeur actuelle de cette variable :
let num1 = 1; // environnement {num1: 1}
let num2 = 2; // environnement {num1: 1, num2: 2}
// Modifions la variable num1 :
num1 = 123; // environnement {num1: 123, num2: 2}
function func() {
}
Lorsque nous essayons d'accéder à une variable à l'intérieur d'une fonction, cette variable est d'abord recherchée parmi les variables locales de la fonction et, si elle n'y est pas trouvée, elle est recherchée dans l'environnement lexical de la fonction.