Javascript closures uitgelegd – deel III header image

Javascript closures uitgelegd – deel III

We gaan in dit deel weer verder waren gebleven in het vorige deel. Mocht je de vorige delen nog niet gelezen hebben lees dan eerste het eerste deel en vervolgens het tweede deel door op de links te klikken.

Functies verstoppen in een closure

In het laatste voorbeeld wat we lieten zien stond twee maal dezelfde regel voor het weergeven van de waarde van de counter.

Deze regel kan vervangen worden voor een functie die niet zichtbaar is buiten de closure.

javascript closures 12

In bovenstaande voorbeeld hebben we een functie met de naam display aangemaakt. Deze fucntie geven we niet terug in het return-statement van de createCounter-functie. Doordat we deze functie niet in het return-statement hebben geplaatst, is deze ook niet aan te roepen buiten de closure.

Probeer de display functie maar eens aan te roepen in je variable die de closure bevat.

Abstracte data types gebruiken

Binnen closures kunnen ook heel eenvoudig abstracte datatypes worden gebruikt. In onderstaande voorbeeld maken we een implementatie van een stack met behulp van closures (wat niet is aan te raden, JavaScript prototypes zullen in dit geval een betere keuze zijn):

javascript closures 13

Closures en OOP (Object Oriëntated Programming)

Als je gebruik maakt van OOP, dan is het vast opgevallen dat closures veel lijken op classes, objecten, instance variablen en private/public functies.

Een closure is dan ook vergelijkbaar met een classe, gekoppeld aan data met daarbinnen specifieke functies. Je kan dus closures gebruiken, waar je normaal een object zou gebruiken.

Laatste tip

Closures zijn een gave eigenschap en een functionele programmeertaal zoals JavaScript. Ze kunnen van pas komen als je echte “verborgen” velden wilt gebruiken in JavaScript, of als op momenten dat een echte class teveel van het goede is.


Andere blogartikelen

De kracht van personalisatie in B2B Leadgeneratie
De kracht van personalisatie in B2B Leadgeneratie

03 November 2023

Hoe u uw B2B klanten kunt nurturen en uw verkoop kunt stimuleren
Hoe u uw B2B klanten kunt nurturen en uw verkoop kunt stimuleren

20 October 2023

Creëer synergie tussen B2B SEA en B2B SEO
Creëer synergie tussen B2B SEA en B2B SEO

11 October 2023

Open Nieuwsbrief Inschrijving Footer