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 );
});