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
this
z 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ć this
zachowanie -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ć this
w 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?
this
zamknięcie w deklaracji pełnej funkcji. Jednak może to nie dotyczy Ciebie.
arguments
.