/ / Nazwa lub termin składni javascript dla funkcji bez tekstu funkcji? - javascript, funkcja

Nazwa lub termin składni javascript dla funkcji bez tekstu funkcji? - javascript, funkcja

Użyłem nowej metody, której właśnie się nauczyłem, do trzymania poza zasięgiem innej funkcji, ale nie pamiętam terminu używanej składni. Poniżej znajduje się przykład tego, jak to działa:

Api.get().then( (data) => {
console.log("do something with data", data);
}, ( e ) {
console.log("Error: ", e );
});

Zasadniczo jest to funkcja zwrotna, ale jaki jest termin lub nazwa tego typu składni. Powodem, dla którego lubię to używać, jest to, że wciąż możesz odwoływać się this oraz jego wartości i metody, przy użyciu function( data ) przegrałby this kontekst. Chcę poznać nazwę lub termin tej składni, ponieważ wydaje się, że nie jest ona obsługiwana przez iPhone'a ani safari i chciałbym przyjrzeć się bliżej pomocy i dokumentacji dotyczącej obsługi tej metody.

Odpowiedzi:

2 dla odpowiedzi № 1

To jest funkcja strzałki i jest częścią najnowszej szóstej edycji standardu ECMAScript (zwanej również ECMAScript 2015, ponieważ został wydany w 2015 r.). Nie jest tak obsługiwany przez wiele przeglądarek, jak widać tutaj.

Możesz używać ich w starszych przeglądarkach, używając czegoś o nazwie a transpiler, który w gruncie rzeczy konwertuje kod ECMAScript 6 (który nie jest tak dobrze obsługiwany) na bardziej zgodny kod ECMAScript 5. Jest ich wiele, ale Babel jest najbardziej popularny. Możesz to wypróbować tutaj i zobacz, jak funkcje strzałek przekształcają się w kompatybilny kod ECMAScript 5, który działa we wszystkich przeglądarkach.

Powodem, dla którego lubię to używać, jest to, że nadal możesz odwoływać się do tego oraz jego wartości i metody

Możesz uzyskać takie same wyniki, jakie dają funkcje strzałek bind(). Spróbuj tego:

Api.get().then(function(data) {
console.log("do something with data", data);
}.bind(this), function(e) {
console.log("Error: ", e );
}.bind(this));

Co bind() robi to tworzy nową funkcję, która ustawia dowolny obiekt, który do niej wysyłasz, jako pierwszy parametr, na this. W ten sposób nadal możesz uzyskać dostęp do bieżącego zakresu, nad którym pracujesz. Możesz przeczytać więcej o bind() tutaj.

Mam nadzieję, że to odpowie na twoje pytanie.