Funkcje strzałkowe (ang. arrow functions) to skrócona składnia definiowania funkcji w JavaScript, wprowadzona w standardzie ES6 (ECMAScript 2015). Są one szczególnie przydatne do pisania krótkich, zwięzłych funkcji. Funkcje strzałkowe mają kilka istotnych różnic w porównaniu z tradycyjnymi funkcjami, które warto znać.
Funkcje strzałkowe mają kilka wariantów składni, w zależności od liczby parametrów i złożoności funkcji.
Funkcje strzałkowe różnią się od tradycyjnych funkcji w kilku kluczowych aspektach:
this: Funkcje strzałkowe nie tworzą własnego kontekstu this. Zamiast tego, dziedziczą this z otaczającego kontekstu.arguments: Funkcje strzałkowe nie mają obiektu arguments. Zamiast tego, można użyć parametru rest ....new.prototype: Funkcje strzałkowe nie mają właściwości prototype.Funkcje strzałkowe są szczególnie przydatne w następujących przypadkach:
this.this w funkcjach strzałkowych
Jedną z najważniejszych cech funkcji strzałkowych jest to, że nie tworzą one własnego kontekstu this. Zamiast tego, dziedziczą this z otaczającego kontekstu. Jest to szczególnie przydatne w funkcjach zwrotnych, gdzie chcemy zachować kontekst obiektu.
this w obiektach
W powyższym przykładzie, funkcja strzałkowa użyta w setTimeout dziedziczy kontekst this z metody powitanie, dzięki czemu ma dostęp do właściwości imie.
Funkcje strzałkowe mogą korzystać z parametrów rest oraz domknięć (ang. closures), podobnie jak tradycyjne funkcje.
Funkcje strzałkowe to potężne narzędzie w JavaScript, które pozwala na pisanie krótszego, bardziej zwięzłego i czytelnego kodu. Są szczególnie przydatne w funkcjach zwrotnych oraz w przypadkach, gdzie chcemy zachować kontekst this z otaczającego zakresu.
Pamiętaj, że funkcje strzałkowe nie są odpowiednie w każdej sytuacji. Nie używaj ich jako konstruktorów ani w przypadkach, gdzie potrzebujesz własnego kontekstu this lub obiektu arguments.