ES6 ha aggiunto le funzioni fat-arrow ( =>
), che presentano due differenze principali rispetto alle normali funzioni:
- sintassi più breve (compreso il ritorno implicito se si utilizza un corpo con una sola espressione)
- eredita
this
dall'ambito circostante
Queste sono entrambe caratteristiche molto utili, ma mi sembrano completamente separate nel loro valore e applicazione - a volte ne voglio uno, o l'altro, o entrambi, o nessuno dei due. Sembra strano che se voglio usare una funzione di sintassi breve, I ha per usare anche il comportamento di modifica di this
. E viceversa. Non vedo perché queste due funzionalità siano implementate come una singola aggiunta alla lingua.
Che cosa succede se voglio usare una breve funzione di sintassi per il suo ritorno implicito e la sua brevità (in alcuni contesti in cui un function (..) { return ...}
sarebbe leggermente meno leggibile), ma voglio usare this
nella mia funzione per fare riferimento a il contesto di chiamata? Non c'è modo di farlo.
CoffeeScript ha funzioni di stile ->
e =>
, e apparentemente ES6 ha preso in prestito lo stile =>
da lì. Quindi la mia domanda è: perché ES6 non ha preso in prestito lo stile ->
?