ES6 ha aggiunto le funzioni fat-arrow ( =>
), che hanno due differenze principali rispetto alle normali funzioni:
- sintassi più breve (incluso il ritorno implicito se si utilizza un corpo a espressione singola)
- ereditare
this
dall'ambito circostante
Queste sono entrambe funzioni molto utili, ma mi sembrano completamente separate nel loro valore e nella loro applicazione - a volte ne voglio una, o l'altra, o entrambe, o nessuna delle due. Sembra strano che se voglio utilizzare una funzione a breve sintassi, ho devo utilizzare anche il this
comportamento -modificare. E viceversa. Non vedo perché queste due funzionalità siano implementate come una singola aggiunta alla lingua.
E se volessi usare una breve funzione di sintassi per il suo ritorno implicito e la sua brevità (in alcuni contesti in cui un intero function (..) { return ...}
sarebbe leggermente meno leggibile), ma vorrei usare this
nella mia funzione per fare riferimento al contesto chiamante? Non c'è modo di farlo.
CoffeeScript ha entrambe le funzioni ->
e lo =>
stile, e apparentemente ES6 ha preso in prestito lo =>
stile da lì. Quindi la mia domanda è: perché ES6 non ha preso in prestito lo ->
stile?
this
alla chiusura in una dichiarazione di funzione completa. Questa potrebbe non essere la parte di cui ti preoccupi.
arguments
.