ES6: Funciones flecha (Arrow functions)

Esta es la segunda entrada sobre ES6. La primera fue sobre las nuevas formas de declarar variables que introduce ES6 y, en esta entrada, vamos a ver otra de las novedades que presenta que son las funciones flecha o arrow functions. Una nueva forma de definir funciones anónimas mucho más simple y corta.

Vamos a ver un ejemplo de cómo se declararía una función con un parámetro de la nueva forma y lo compararemos con la forma tradicional de hacerlo:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Funciones-flecha-con-un-parametro

En este ejemplo, vemos como se declara un función de la forma tradicional con el function, los {} y un return. Pero, con ES6 todo esto se simplifica, el function, los {} y el return se eliminan y se le añade =>, simplificando todo a una línea. Hay veces que los {} se deberán mantener, ésto será cuando la función tiene más de una línea o no devuelve ningún valor (return).

Como podéis ver en la línea 9, es la misma función pero los parámetros de la función no tienen paréntesis. Esto es debido a que si la función solamente tiene un parámetro los paréntesis son opcionales, no hace falta ponerlos.

Si tuviésemos una función con varios parámetros o sin parámetros, los paréntesis son obligatorios:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Funciones-flecha-con-multiples-parametros-y-sin

 

Las funciones flecha también pueden ser utilizadas en cualquier función que tenga como parámetro una función:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Funciones-flecha-con-funciones-JS

 

Otra cosa interesante, es que las funciones arrow resuelven la problemática con el valor de this. Ésta era una problemática que llegaba a dar bastantes dolores de cabeza, ya que this según el contexto donde se ejecutaba, podía llegar a tener un valor u otro. Seguramente te suene var that = this;  o bindearlo con el método .bind(this)  o cosas por el estilo para resolver esto. Pues con las funciones flecha se resuelve, ya que no tienen su propio this, si no que this es una instancia de la función exterior, como podemos ver el siguiente ejemplo:

Ver código anterior en vivo: https://repl.it/@vreaxe/ES6-Funciones-flecha-this

-

 


Aloja tu proyecto en DigitalOcean: Obtén $200 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

Deja una respuesta

  Acepto la política de privacidad