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
thisdall'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 -> ?