Una de las novedades que trajo la versión 6 de ECMAScript es la posibilidad de definir funciones de una manera más abreviada con las Arrow Functions, también llamadas Funciones Flecha por su traducción del inglés. Una de las peculiaridades que tiene es que estamos obligados a guardarla en una variable si queremos utilizarla en cualquier parte del código. Veamos un ejemplo comparando la definición estándar con la nueva.
Declaración estándar
Declaración ES6
Si la función que estamos definiendo devuelve directamente un valor es posible acortarla aún más, puesto que la flecha (=>) actúa como la sentencia return.
En caso de que la función sólo tenga un parámetro, no estamos obligados a poner los paréntesis.
Peculiaridades
Además de tener que ser guardada en una variable, las funciones flecha tienen una serie de peculiaridades :
- No realizan sus propias vinculaciones de this.
- No son adecuadas para ser utilizadas como métodos.
- No pueden ser usadas como constructores.
- Deben incluir entre paréntesis el cuerpo para retornar un objeto literal param=>({clave:valor}).
- Soporta parámetros por defecto.
- No tienen su propio objeto argument (usamos parámetros rest).
- No tienen una propiedad de prototipo (prototype).
- La expresión yield no puede ser usada dentro de la Arrow Function,a menos que esté anidada dentro de una función estándar.Por esto, no pueden ser usadas como funciones generadoras.
- No puede contener salto de línea entre sus parámetros y su flecha.
- Tienen reglas de parseo especiales que interactúan de manera diferente con la precedencia de operadores, aunque no es un operador.
Deja una respuesta