"El diseño es el embajador silencioso de tu marca"
- Paul Brand

Qué es Lodash?

Lodash nace como un fork de Underscore.js, pero con el tiempo ha ido evolucionando hasta convertirse hoy en día en la librería de javascript más famosa para proveer funcionalidades sobre las colecciones de objetos.

Cuando antes cierto objeto de javascript necesitaba de una nueva funcionalidad por lo general hacemos un prototipo, pues a nivel de rendimiento es mucho mejor que andar creando funciones dentro del propio objeto, pero siempre se nos dijo que mucho cuidado con hacer prototipos a primitivos, o a los arrays…

La razón es que todo será una instancia de estos datos y por lo tanto harás que todo herede ese prototipo en muchos casos sin necesidad, sin embargo en muchos casos vemos necesario que cierto tipo de objeto nos permita hacer una función y queremos implementarla.

Si estas en ese punto casi con total seguridad olvidate de hacerlo y busca en la documentación de lodash, porque a ellos ya se les ocurrió hacerlo bastante antes que a ti y porque por muy bueno que sea tu código es dificil que este mejor y más optimizada que la suya.

Caso practico, quiero hacer un «clonado profundo», que para aquellos que no entendais que es, se refiere a cuando crear un nuevo objeto completamente idéntico a otro que le indicas, no debe confundirse con «extender» que modificaría uno ya existente con nuevas propiedades ni con simplemente crear una referencia al objeto.

Como un objeto en javascript no tiene por defecto este metodo, no quedaría otra que extender Object que es el padre de nuestro objeto (ya que nosotros para crear un objeto hacemos creamos una instancia de Object usando new() que basicamene llama a un constructor) creando un prototipo que haga esta funcionalidad.

Pero si ya tenemos lodash esto está hecho, el ejemplo de codigo que presenta es este:

Clona dentro de «deep» el objeto «objects», de manera que este va a ser una copia exacta de él, pero cuando en la consola comparamos ambos objetos, el original y el clonado nos dice que no son el mismo.

La lista de funciones que implementa es muy grande, si nuestra aplicacion requiere de cierta complejidad lo vamos a acabar usando de manera que no esta de mal incorporarla a nuestro proyectos, como punto a favor es una librería muy ligera y además podemos escoger que funciones queremos importar.

The following two tabs change content below.
Especialista en diseño web responsive, programador html5, css3, jquery, php y java.

Latest posts by Óscar Lijó (see all)