Arrow functions
Arrow function, znane również jako funkcje strzałkowe, to nowa składnia wprowadzona w ES6, która pozwala na bardziej zwięzłe tworzenie funkcji. Są one szczególnie przydatne w przypadkach, gdy potrzebujemy anonimowych funkcji, na przykład jako argumentów innych funkcji.
Podstawowa składnia funkcji strzałkowej wygląda następująco:
const myFunction = (arg1, arg2) => {
return arg1 + arg2;
}; W przypadku pojedynczego argumentu nawiasy są opcjonalne:
const square = x => {
return x * x;
}; A jeśli ciało funkcji ma tylko jedną linijkę, która zwraca wartość, możemy (ale nie musimy) pominąć nawiasy klamrowe i słowo return:
const add = (a, b) => a + b; Maksymalne uproszczenie:
const square = x => x * x; Porównanie z klasycznymi funkcjami
- Kontekst
this
Główną różnicą między arrow function a tradycyjnymi funkcjami jest sposób, w jaki obchodzą się z kontekstem this (szczegóły na temat this jeszcze przed nami). W tradycyjnych funkcjach this jest związane z kontekstem wywołania funkcji.
W funkcjach strzałkowych this jest związane leksykalnie, co oznacza, że odziedziczone jest z otaczającego zakresu. Spokojnie, wrócimy do tego 😉
- Metody
call,apply,bind
W przypadku funkcji strzałkowych metody call, apply i bind nie zmieniają kontekstu this, co oznacza, że ich zachowanie jest różne w porównaniu z tradycyjnymi funkcjami.
- Brak
arguments
Kolejną różnicą jest to, że arrow function nie mają własnego obiektu arguments. Jeśli potrzebujemy dostępu do wszystkich argumentów funkcji, musimy użyć operatora rest (...).
- Konstruktor
Funkcje strzałkowe nie mogą być używane jako konstruktory. Jeśli spróbujemy to zrobić, JavaScript zgłosi błąd.
Kiedy Używać Arrow Function
Arrow function najlepiej sprawdzają się w sytuacjach, gdzie:
- Potrzebujemy anonimowej funkcji.
- Chcemy uniknąć problemów związanych z kontekstem
this. - Szukamy bardziej zwięzłego sposobu na zapisanie funkcji.
Na początku Twojej przygody z programowaniem w JS, możesz nie zauważyć różnicy między tradycyjnymi funkcjami a funkcjami strzałkowymi. Na ten moment, możesz śmiało używać i jednej i drugiej konstrukcji w zależności od Twoich preferencji. Sporo deweloperów preferuje funkcje strzałkowe, ponieważ są po prostu krótsze i szybsze do napisania.
W dalszej części tego kursu dojdziemy do sytuacji, gdy użycie jednej z nich będzie lepszym rozwiązaniem. Wtedy zrozumiesz ten temat dużo lepiej 🙂