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).

No hay comentarios:

Publicar un comentario