28/08/11

JavaScript chaining pattern

Met het JavaScript chaining pattern kan je meerdere functies (methods) achter elkaar aanroepen zonder ze te moeten binden aan variabelen en ze te verspreiden over meerdere lijnen. Je kan deze programmeer techniek gebruiken wanneer de functies geen bepaalde waarde terug geven, zodat je ze het object laat teruggeven (return this) waarop je ze hebt aangeroepen.

var obj = {
 
               value: 1,
 
               add:   function(val) {
 
                             this.value += val;
 
                             return this;
 
                      },
 
               minus: function(val) {
 
                              this.value -= val;
 
                      }
 
             };
 
// Koppel (chaining) de verschillende methods
 
obj.add(5).minus(3); // 3
 
// Of je kan ze apart aanroepen
 
obj.add(3) // 4

Het grote voordeel van het ‘chaining pattern’ is dat je mooie en zeer overzichtelijke code schrijft. Je hoeft niet steeds een nieuwe lijn te beginnen om een nieuwe wijziging uit te voeren aan het object waar je op werkt. Het nadeel van deze programmeer techniek is dat het moeilijker wordt om je code te debuggen. Firebug vertelt je precies op welke lijn de error zit, maar omdat je met dit patroon zoveel tegelijk doet op één lijn, wordt het steeds moeilijker om de precieze functie te vinden waar het probleem zich voordoet.

Een bekende library die gebouwd is rond het principe van ‘chaining’ is jQuery. Zelf ben ik een grote liefhebber van deze manier van werken. Het maakt je code net zo leesbaar alsof je een stukje tekst leest, waardoor je minder comments moet schrijven en nadien sneller begrijpt wat je eerder geprogrammeerd hebt.

copyright 2011 agmino web solutions