Lazy Function Definition Pattern

Patrones de diseño Ésta técnica, permite explotar una de las mejores características de JavaScript, los closures on-demand, con la cual podemos crear un closure la primera vez que se invoca una función, dándonos la ventaja de crear un caché, crear un estado interno privado, reducir operaciones complejas, etc. 🙄 Pero así como tiene ventajas, éste patrón de diseño tiene desventajas que debemos conocer.

Una de las ventajas que se logra con ésta técnica, es que se puede mejorar el rendimiento de las funciones, cuando en ellas se realizan operaciones constantes que siempre arrojan el mismo resultado, ya que se crea un cache con el resultado de cada operación efectuada. Y la otra gran ventaja es que al ser on-demand, el closure y la caché sólo se crearán cuando se invoque por primera vez la función; a ésta técnica se le conoce como lazy load o lazy evaluation.

Continue reading

Closures en JavaScript

Closures
“Un closure es un tipo especial de objeto que combina dos cosas: una función, y el entorno en que se creó esa función. El entorno está compuesto por las variables locales que están dentro del scope en el momento en que el closure fue creado” — MDN. Es decir que una función definida dentro del closure recuerda el entorno donde se creó y tiene acceso a las variables de ese entorno (variables libres).

Continue reading

¿Sabías esto de JavaScript?

JavaScript logo
JavaScript es un lenguaje de programación interpretado*, definido como orientado a objetos basado en prototipos (class-less), imperativo, débilmente tipado y dinámico.

JavaScript sigue algunos de los principios de la programación orientada a objetos, con un enfoque prototipado en donde los objetos ya existentes pueden servir de prototipo para los que se necesite crear. Además del paradigma OOP, JavaScript también permite trabajar el paradigma de programación funcional.

Características como funciones variádicas (número indefinido de parámetros en una función), tipos de datos dinámicos, hoisting, coerción, entre otros, hacen que JavaScript sea un lenguaje muy flexible y permisivo, por lo que es mejor conocer los principios del lenguaje para evitar cometer errores y caer en malas prácticas.
Continue reading