¿Por qué ES6 no tiene funciones de flecha delgada?

13

ES6 agregó fat-arrow funciones ( => ), que tienen dos diferencias principales de las funciones normales:

  • sintaxis más corta (incluida la devolución implícita si utiliza un cuerpo de una sola expresión)
  • heredar this del ámbito que lo rodea

Estas dos características son muy útiles, pero me parecen completamente separadas en su valor y aplicación; a veces quiero una, la otra, o ambas, o ninguna. Parece extraño que si quiero usar una función de sintaxis corta, tengo para usar también el comportamiento de modificación this . Y viceversa. No veo por qué estas dos capacidades se implementan como una adición única al lenguaje.

¿Qué sucede si deseo usar una función de sintaxis corta para su retorno implícito y brevedad (en algún contexto donde un function (..) { return ...} completo sería un poco menos legible), pero quiero usar this en mi función para referirme a ¿El contexto que llama? No hay manera de hacer esto.

CoffeeScript tiene funciones de estilo -> y => , y al parecer ES6 tomó prestado el estilo => de allí. Así que mi pregunta es, ¿por qué ES6 tampoco tomó prestado el estilo -> ?

    
pregunta callum 29.12.2015 - 13:30

1 respuesta

22

Consulte la propuesta para agregar funciones de flecha: enlace 1

Lo que dice es:

  

Sin embargo, no queremos que CoffeeScript's - & gt ;, sea confuso tener dos   flechas y dinámica esta unión es una pistola de fuego con frecuencia.

También puede ver una discusión sobre una versión anterior de la propuesta que tenía el - > también la sintaxis: enlace

Parece que se reduce a lo siguiente:

  1. Tener dos sintaxis de flecha con semánticas sutilmente diferentes aumentaría la complicación y la confusión.
  2. La dinámica de esta unión de la función () y -> se consideró rara vez útil, y una pistola de pie.
  3. Si realmente necesita este enlace dinámico, aún puede usar function (), tener una sintaxis de acceso directo no fue muy útil.
respondido por el Winston Ewert 29.12.2015 - 17:37

Lea otras preguntas en las etiquetas