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
thisdel 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 thiscomportamiento 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 thisen 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?
fuente

arguments.thisal cierre en una declaración de función completa. Sin embargo, esta podría no ser la parte que le preocupa.Respuestas:
Consulte la propuesta para agregar funciones de flecha: http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax 1
Lo que dice es:
También puede ver un análisis de una versión anterior de la propuesta que también tenía la sintaxis ->: https://esdiscuss.org/topic/arrow-function-syntax-simplified
Parece que se reduce a lo siguiente:
->rara vez se consideró útil, y un pistolero.fuente
function()estilo de este enlace fue un error y es una verruga en el lenguaje. Si pudieran, cambiaríanfunction()para tener=>semántica, pero no pueden porque eso rompería la compatibilidad con versiones anteriores.function()para heredarthisdel alcance circundante como lo=>hace? En ese caso, ¿no sethisreferiría simplemente al objeto global en todas partes? Suena raro. ¿De dónde has oído eso?