Accès aux variables externes des fonctions en JavaScript
Examinons le code suivant :
let num = 1; // définir la valeur de la variable
function func() {
console.log(num); // l'afficher dans la console
}
func(); // appeler la fonction
Comme je l'ai mentionné précédemment, la valeur de la variable n'a pas nécessairement besoin d'être avant la définition de la fonction, l'important est qu'elle soit avant son appel :
function func() {
console.log(num);
}
let num = 1;
func();
En réalité, ce n'est pas tout à fait vrai. Notre fonction
connaît la valeur de la variable
num même avant son appel :
let num = 1;
function func() {
console.log(num); // la fonction sait déjà que num = 1
}
Voici un exemple plus complexe :
let num = 1; // la fonction apprend à ce moment que num = 1
function func() {
console.log(num);
}
num = 2; // la fonction apprend à ce moment que num = 2
Ajoutons des appels de fonction :
let num = 1; // la fonction apprend à ce moment que num = 1
func(); // affichera 1
function func() {
console.log(num);
}
func(); // affichera 1
num = 2; // la fonction apprend à ce moment que num = 2
func(); // affichera 2
Encore une fois : en réalité, la fonction connaît les valeurs des variables externes, même sans avoir été appelée.