Skip to content

Latest commit

 

History

History
60 lines (39 loc) · 3 KB

File metadata and controls

60 lines (39 loc) · 3 KB

Módulo 3 - Funciones de primer orden

Contenido

Funciones de primer orden

Llamamos funciones de primer orden a aquellas que:

  • a) Reciben una función como parámetro
  • b) Devuelven una función como resultado

En este módulo exploramos las repercusiones de utilizar este tipo de funciones y exploramos algunas de las posibilidades que nos habilitan.

Recursos

Empezando por las funciones que reciben otras funciones por parámetro, implementaremos múltiples métodos de utilidad que se apoyan en las funciones de primer orden.

  • repeat
  • retry
  • map
  • filter
  • reduce

Clausuras

Un concepto muy importante a la hora de entender cómo se comportan las funciones en Javascript son las clausuras. En esencia, la clausura es el scope en el momento de creación de una función. Esta define todas las variables a las que la función va a tener acceso desde cualquier lugar. La clausura no se altera aunque la función se importe desde otro módulo o se pase por parámetro.

Las clausuras se explican en detalle durante la presentación del módulo e introducimos algunos conceptos como variable libre y las diferentes versiones del operador de incremento (++).

Recursos

Funciones que devuelven funciones

Expuestas las clausuras, el módulo explora las posibilidades que se desbloquean al poder implementar funciones que reciben una función y devuelven otra función. En definitiva, este mecanismo nos permite modificar el comportamiento de las funciones de entrada de varias formas:

  • Cambiar la forma o el número de los parámetros que espera esa función
  • Cambiar la frecuencia con la que se llama esa función.
  • Controlar que la función solo se ejecute si se cumplen determinadas condiciones.

Implementaremos algunos ejemplos en este módulo como memoize y partial, pero veremos más ejemplos en el módulo de asincronía.

De nuevo, Lodash ofrece muchas funciones utiles de primer orden: