ES6 agregó funciones de flecha de grasa ( =>
), que tienen dos diferencias principales con respecto a las funciones normales:
- sintaxis más corta (incluido el retorno implícito si usa un cuerpo de expresión única)
- heredar
this
del alcance circundante
Ambas son características muy útiles, pero me parecen completamente separadas en su valor y aplicación; a veces quiero una, o la otra, o ambas, o ninguna. Parece extraño que si quiero usar una función de sintaxis corta, también tengo que usar el this
comportamiento de modificación. Y viceversa. No veo por qué estas dos capacidades se implementan como una sola adición al lenguaje.
¿Qué sucede si quiero usar una función de sintaxis corta para su retorno implícito y brevedad (en algún contexto donde un completo function (..) { return ...}
sería un poco menos legible), pero quiero usar this
en mi función para referirme al contexto de llamada? No hay forma de hacer esto.
CoffeeScript tiene ambas funciones ->
y =>
estilo, y aparentemente ES6 tomó prestado el =>
estilo a partir de ahí. Entonces mi pregunta es, ¿por qué ES6 tampoco tomó prestado el ->
estilo?
this
al cierre en una declaración de función completa. Sin embargo, esta podría no ser la parte que le preocupa.
arguments
.