ES6 dodał funkcje Fat-Arrow ( =>), które mają dwie główne różnice w stosunku do normalnych funkcji:
- krótsza składnia (w tym niejawny zwrot, jeśli używasz treści pojedynczego wyrażenia)
- dziedzicz
thisz otaczającego zakresu
Obie są bardzo przydatnymi funkcjami, ale wydają mi się całkowicie odrębne pod względem wartości i zastosowania - czasami chcę jednej lub drugiej, albo obu, albo żadnej. Wydaje się dziwne, że jeśli chcę użyć funkcji krótki składni, ja mam również użyć thiszachowanie -modifying. I wzajemnie. Nie rozumiem, dlaczego te dwie możliwości zostały zaimplementowane jako pojedynczy dodatek do języka.
Co jeśli chcę użyć krótkiej funkcji składni do jej niejawnego zwrotu i zwięzłości (w pewnym kontekście, w którym pełny function (..) { return ...}byłby nieco mniej czytelny), ale chcę użyć thisw mojej funkcji, aby odwoływać się do kontekstu wywołującego? Nie ma na to sposobu.
Coffeescript ma zarówno ->i =>styl funkcje i najwyraźniej ES6 zapożyczył =>styl stamtąd. Więc moje pytanie brzmi: dlaczego ES6 również nie pożyczył tego ->stylu?
thiszamknięcie w deklaracji pełnej funkcji. Jednak może to nie dotyczy Ciebie.
arguments.