Javascript closures uitgelegd – deel II

Geschreven door: op maandag 18 april 2016

Leestijd:

Dit is deel twee van de uitleg over Javascript closures. Mocht je deel I nog niet gelezen hebben, lees deze dan eerst hier door. In dit artikel gaan we namelijk verder waar we gebleven waren in het vorige artikel.

De counters een naam geven

Het bericht wat in het vorige voorbeeld werd getoond is voor elke counter hetzelfde. Dit is natuurlijk niet handig als je veel counters moet bijhouden. Dit kunnen we als volgt oplossen:

javascript closures 6

Bovenstaande code kan als volgt worden aangeroepen:

javascript closures 7

Het voordeel aan closures is dat deze niet alleen intern variable kunnen bijhouden, maar ze onthouden ook met welke waardes ze zijn aangeroepen. Dit hoef je dus maar één keer mee te sturen.

De aanroep verbeteren

De manier waarop de functie increment wordt aangeroepen kan ook nog verbeterd worden. Het is nu namelijk niet mogelijk om een andere functie aan te roepen. Daarom moeten eerst de createCounter functie worden aangepast zodat deze niet altijd de increment-functie aanroept.

Dit doen we als volgt:

javascript closures 8

In de createCounter-functie geven we nu alle functies terug die de closure bevat. We geven hiermee aan welke functies de closure allemaal bevat en kunnen worden aangeroepen.

De createCounter-functie kunne we dan als volgt gaan gebruiken:

javascript closures 9

De createCounter functie uitbreiden met een verlaag functie

Nu we weten hoe we functies in die in de closure staan kunnen teruggeven, is het heel eenvoudig om deze uit te breiden met een functie om de counter te verlagen.

javascript closures 10

Zoals te zien is in bovenstaand is het alleen nodig om de functie decrement toe te voegen aan de closure en aan het return object. Daarna werd de nieuwe functie op dezelfde manier als onze bestaande functie.

Closures nog verder uitgelegd

In het volgende deel gaan we nog dieper in op het gebruik van closures. Zo leggen we uit hoe je functies kunt verstoppen in een closure en hoe je abstracte datatypes kunt gebruiken.


Andere blogartikelen

  • Css grid

    Geschreven door: op dinsdag 20 februari 2018

    Css grid is een vernieuwende manier voor het indelen van content op website pagina’s. Met behulp van css wordt de uiterlijk van een website bepaald. Doormiddel van een grid is het mogelijk om gemakkel ...

    Bekijk het artikel »
  • CSS vendor prefixes

    Geschreven door: op dinsdag 20 februari 2018

    Bij CSS is het voor een aantal stijl regels mogelijk om aan te geven in welke browser deze gebruikt moet worden. Hiervoor wordt het type browser toegevoegd voor de stijl regel. Dit wordt een prefix (o ...

    Bekijk het artikel »
  • CSS auto prefixer

    Geschreven door: op dinsdag 20 februari 2018

    In een eerder blog over vendor prefixes was te zien hoe met behulp van prefixes experimentele stijling regels voor specifieke browser toegepast kunnen worden. Hoewel het gebruik van prefixes in deze ...

    Bekijk het artikel »
Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Allrig is de alles in een leverancier binnen de energie-industrie
Aliancys is een toonaangevend wereldwijd bedrijf actief in de verkoop van kwaliteitsharsen
ERIKS is een toonaangevende en innovatieve leverancier aan de procesindustrie en aan machinebouwers, die zowel de rol van specialist als die van brede MRO-leverancier vervult
Industrieel dienstverlener Heinen & Hopman Engineering uit Bunschoten is dé wereldwijde specialist op het gebied van klimaatbeheersing
Handicare is een internationale organisatie die ouderen helpt om hun dagelijks leven gemakkelijker te maken door het produceren van hoogwaardige trapliften
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd gazellen 2017
Google analytics
Google adwords
TelefoonE-mail

whitepaper-customer-selfservice-1.png

Bedien uw klanten optimaal met customer selfservice

Download de whitepaper