[ingresar]

Que es una Clausura?

  1. Que es una Clausura (Closure)?
  2. Variables y Valores
  3. Definiendo Funciones
  4. Efectos Secundarios
  5. Las Funciones son Valores
  6. Retornando Funciones
  7. Alcance de Función
  8. Funciones Anidadas
  9. Clausuras con Estado
  10. Datos Privados
  11. Callbacks Asincrónicos
  12. Pasando Continuación

Funciones Anidadas

Dentro de una función se puede definir y usar otra función. El siguiente ejemplo muestra una función auxiliar para simplificar un cálculo complicado.

En la definición de una función se puede referenciar a los argumentos de la función padre. También se puede referenciar a las variables fuera de la función anidada. Un ejemplo pero con la constante 1 factorizada como una variable.

En realidad ese fue el primer ejemplo de una clausura (closure)! La función externa encierra la función interna, y sus funciones anidadas pueden usar variables de la función externa.

Un caso importante es cuando la función interna referencia a los argumentos desde la función externa. Los argumentos son como variables, podes referenciarlos desde la función interna de la misma manera.

El siguiente ejemplo muestra una función crear que recibe un argumento x y retorna una nueva función. La función retornada no recibe argumentos y retorna x.

En el ejemplo anterior, incluso luego de que la función crear termina, la función que retorna sigue trabajando. Esa es la magia de las clausuras, la referencia a x en el alcance externo sigue siendo válido incluso después de que la función externa termina. Profundo, no?.

Entonces, que es una clausura? Una clausura es la función mas el encierre de su entorno. En JavaScript cuando estamos enviando valores a una función, le estamos pasando también clausuras!

Definir una función llamda genesis que reciba dos argumentos x e y. Debe retornar una función que siempre retorne x + y.

1:1

about noticias inicio