Closures in JavaScript
Laten we nu het concept closure (closure) bestuderen. Eigenlijk ben je al bekend met dit concept, het enige dat rest is de juiste terminologie te leren.
Een closure is dus een functie samen met alle externe variabelen die voor haar toegankelijk zijn. Of, met andere woorden, een closure is een functie samen met haar lexicale omgeving.
In JavaScript bedoelt men, wanneer men "closure van een functie" zegt, meestal niet de functie zelf, maar juist haar externe variabelen. Als een functie een variabele uit haar lexicale omgeving haalt, dan zegt men "de variabele wordt uit de closure gehaald".
Laten we de code herinneren die we in de vorige les hebben gemaakt:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // geeft 1 weer
In dit geval kan men zeggen dat de functie
func de waarde van variabele
num uit de closure haalt. Men kan ook zeggen
dat de functie func de waarde van variabele
num in de closure bewaart.