Closure - MichaelChorak/projectTech GitHub Wiki
Een closure is een functie die gebruik maakt van variabelen die zich bevinden in het bereik waarin de functie is gedefinieerd. Maar niet per se in het bereik waarin de functie wordt aangeroepen.
Voorbeeld van Closure
const maakClosure = function (a) {
return function (b) {
return a + b;
}
}
Dit bovenstaande geeft een closure terug, variable 'a' behoort tot de functie, maar is buiten de functie 'maakClosure' niet bekend.
const closure1 = maakClosure(5);
const closure2 = maakClosure(9);
Deze kunnen we vervolgens aanroepen als aparte functies:
function gebruikClosure1(){
const x = closure1(6); // 6 + 5 maakt 11
}
function gebruikClosure2(){
const x = closure1(12); // 12 + 9 maakt 21
}
De 2 bovenstaande functies hebben nu hun eigen versie van variable a. Die buiten de functie al gedeclareerd zijn.