Toegang tot externe variabelen van functies in JavaScript
Laten we de volgende code bekijken:
let num = 1; // stel de waarde van de variabele in
function func() {
console.log(num); // geef het weer in de console
}
func(); // roep de functie aan
Zoals ik eerder al noemde, hoeft de waarde van de variabele niet per se vóór de definitie van de functie te staan, het belangrijkste is dat het vóór haar aanroep staat:
function func() {
console.log(num);
}
let num = 1;
func();
Eigenlijk is dit niet helemaal waar. Onze functie
kent de waarde van de variabele
num zelfs vóór haar aanroep:
let num = 1;
function func() {
console.log(num); // de functie weet al dat num = 1
}
Hier is een complexer voorbeeld:
let num = 1; // op dit moment weet de functie dat num = 1
function func() {
console.log(num);
}
num = 2; // op dit moment weet de functie dat num = 2
Laten we functie-aanroepen toevoegen:
let num = 1; // op dit moment weet de functie dat num = 1
func(); // geeft 1 weer
function func() {
console.log(num);
}
func(); // geeft 1 weer
num = 2; // op dit moment weet de functie dat num = 2
func(); // geeft 2 weer
Nogmaals: eigenlijk kent de functie de waarden van externe variabelen, zelfs zonder aangeroepen te zijn.