Closure i JavaScript
Lad os nu studere begrebet closure (closure). Faktisk er du allerede bekendt med dette koncept, det eneste der mangler er at lære den korrekte terminologi.
Så, et closure er en funktion sammen med alle de eksterne variable, der er tilgængelige for den. Eller med andre ord, et closure er en funktion sammen med sit leksikalske miljø.
I JavaScript, når man siger "et funktionsclosure", mener man som oftest ikke selve funktionen, men netop dens eksterne variable. Hvis en funktion henter en variabel fra sit leksikalske miljø, så siger man "variablen hentes fra closure".
Lad os huske koden, som vi lavede i den forrige lektion:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // udskriver 1
I dette tilfælde kan man sige, at funktionen
func henter værdien af variablen
num fra closure. Man kan også sige,
at funktionen func gemmer værdien af variablen
num i closure.