Lukkinger i JavaScript
La oss nå studere begrepet lukking (closure). Egentlig er du allerede kjent med dette begrepet, det som gjenstår er bare å lære den riktige terminologien.
Så, en lukking er en funksjon sammen med alle de eksterne variablene som er tilgjengelige for den. Eller med andre ord, en lukking er en funksjon sammen med sitt leksikalske miljø.
I JavaScript, når man sier "en funksjons lukking", mener man som oftest ikke selve funksjonen, men nettopp dens eksterne variabler. Hvis en funksjon henter en variabel fra sitt leksikalske miljø, sier man at "variabelen hentes fra lukkingen".
La oss huske koden som vi lagde i forrige leksjon:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // skriver ut 1
I dette tilfellet kan man si at funksjonen
func henter verdien av variabelen
num fra lukkingen. Man kan også si
at funksjonen func lagrer verdien av variabelen
num i lukkingen.