16 marzo, 2008

Funciones `parciales´ con Javascript

En este artículo de John Resig se explica cómo crear funciones parciales, que son aquellas derivadas de otras existentes pero que tienen predefinido ya uno o varios argumentos al ser llamadas. La función definida sobre el prototipo de Function que permite crear dichas funciones sería la siguiente:


Function.prototype.partial = function(){
  var fn = this, args = Array.prototype.slice.call(arguments);
  return function(){
    var arg = 0;
    for ( var i = 0; i < args.length && arg < arguments.length; i++ )
      if ( args[i] == undefined )
        args[i] = arguments[arg++];
    return fn.apply(this, args);
  };
};

// Y UN EJEMPLO DE USO

String.prototype.csv = String.prototype.split.partial(/,\s*/);
 
var results = "John, Resig, Boston".csv();
alert( results[1] ); // IMPRIMIRIA "Resig"

Con esto, es sencillo crear funciones nuevas a partir de las existentes. Existen en el artículo otras técnicas que amplían aún más la funcionalidad (como por ejemplo el rellenar automáticamente los parámetros que no se especifiquen).

0 comentarios:

Publicar un comentario

Últimos links en indiza.com