Contenido

Underscore.js, 2kb con todo lo que realmente necesitas de Javascript

11 nov

+ 6

Underscore.js es una librería Javascript de tan solo 2kb (comprimida) que se compone de todo el Javascript que solemos usar en el día a día. Al igual que jQuery y Prototype basa en un carácter toda la funcionalidad de la librería ($()) aunque esta lo hace sobre _() (como su nombre indica). Esto hace que desarrollar con ella sea sencillo y no tengas que recordar largos nombres de objetos ni métodos para conseguir la misma facilidad.

Modo de empleo

Underscore.js está pensado para funcionar en programación orientada a objetos o programación funcional. Por ello podemos usarlo de dos formas diferentes:

_.map([1, 2, 3], function(n){ return n * 2; });
_([1, 2, 3]).map(function(n){ return n * 2; });

Esto nos permitirá desarrollar como más nos guste.

Métodos

_.methods();
["all", "any", "bind", "bindAll", "breakLoop", "clone", "compact", "compose",
"defer", "delay", "detect", "each", "every", "extend", "filter", "first",
"flatten", "foldl", "foldr", "forEach", "functions", "identity", "include",
"indexOf", "inject", "intersect", "invoke", "isArray", "isElement", "isEmpty",
"isEqual", "isFunction", "isUndefined", "keys", "last", "lastIndexOf", "map",
"max", "methods", "min", "pluck", "reduce", "reduceRight", "reject", "select",
"size", "some", "sortBy", "sortedIndex", "template", "toArray", "uniq", "uniqueId",
 "values", "without", "wrap", "zip"]

Por su tamaño puede dar la impresión de que los métodos disponibles serán más bien escasos, pero viendo este listado de funcionalidades vemos que esos 2kb están bien aprovechados. Hay que tener en cuenta que no dispone de métodos para manipular elementos del DOM, lo que hace que esa funcionalidad que tienen otras librerías tengamos que hacerlas nosotros a mano, aunque Underscore.js está pensada para funcionar con cualquier librería actual.

Demo y Descargar

Para los que quieran probarla hay una demo en la que compara el número de operaciones realizada contra jQuery o descargarla y hacer las pruebas en local.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.