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.

Gebruikte bronnen:

Closures in Javascript Wiki

MDN Closures

Learn closure in 7 minutes