Adgang til eksterne variabler af funktioner i JavaScript
Lad os se på følgende kode:
let num = 1; // sæt variabelværdi
function func() {
console.log(num); // udskriv den i konsollen
}
func(); // kald funktionen
Som jeg allerede har nævnt tidligere, behøver variabelværdien ikke nødvendigvis at være før definitionen af funktionen, det vigtigste er, at den står før dens kald:
function func() {
console.log(num);
}
let num = 1;
func();
Faktisk er det ikke helt rigtigt. Vores funktion
kender værdien af variablen
num selv før dens kald:
let num = 1;
function func() {
console.log(num); // funktionen ved allerede, at num = 1
}
Her er et mere komplekst eksempel:
let num = 1; // funktionen finder på dette tidspunkt ud af, at num = 1
function func() {
console.log(num);
}
num = 2; // funktionen finder på dette tidspunkt ud af, at num = 2
Lad os tilføje funktionskald:
let num = 1; // funktionen finder på dette tidspunkt ud af, at num = 1
func(); // udskriver 1
function func() {
console.log(num);
}
func(); // udskriver 1
num = 2; // funktionen finder på dette tidspunkt ud af, at num = 2
func(); // udskriver 2
Igen: faktisk kender funktionen værdierne af eksterne variabler, selv uden at være kaldt.