Accesul la variabilele externe ale funcțiilor în JavaScript
Să luăm în considerare următorul cod:
let num = 1; // setăm valoarea variabilei
function func() {
console.log(num); // îl afișăm în consolă
}
func(); // apelăm funcția
După cum am menționat anterior, valoarea variabilei nu trebuie neapărat să fie înainte de definirea funcției, principalul este să fie înainte de apelarea ei:
function func() {
console.log(num);
}
let num = 1;
func();
De fapt, acest lucru nu este chiar așa. Funcția noastră
cunoaște valoarea variabilei
num chiar înainte de apelarea ei:
let num = 1;
function func() {
console.log(num); // funcția știe deja că num = 1
}
Iată un exemplu mai complex:
let num = 1; // funcția în acest moment află că num = 1
function func() {
console.log(num);
}
num = 2; // funcția în acest moment află că num = 2
Să adăugăm apeluri ale funcției:
let num = 1; // funcția în acest moment află că num = 1
func(); // va afișa 1
function func() {
console.log(num);
}
func(); // va afișa 1
num = 2; // funcția în acest moment află că num = 2
func(); // va afișa 2
Încă o dată: de fapt, funcția cunoaște valorile variabilelor externe, chiar și fără a fi apelată.