rnaffer
10/26/2015 - 2:25 AM

Ejemplo del patrón de diseño "Chaining" con explicación.

Ejemplo del patrón de diseño "Chaining" con explicación.

// Util para crear API's que trabajen con objetos mutables.
// Trabaja con un objeto raiz.
// Patrón utilizado en JQuery y LinQ
// Las funciones retornan su objeto raiz para que sea posible encadenar funciones
// y hacen las operaciones sobre una variable que pertenece al objeto raiz.

var Calc = function( start ) {
  
  this.add = function( x ) {
    
    start = start + x;
    
    return this;
  };
  
  this.multiply = function( x ) {
    
    start = start * x;
    
    return this;
  };
  
  this.equals = function( callback ) {
    
    callback(start);
    
    return this;
  };
}

// Ejemplo final 
new Calc( 0 )
  .add( 1 )
  .add( 2 )
  .multiply( 3 )
  .equals(function( results ) {
    
    console.log( results );
  });