Czym różni się użycie funkcji strzałkowych od funkcji standardowych w JavaScript?
sobes.tech AI
Odpowiedź od AI
Funkcje strzałkowe w JavaScript różnią się od funkcji standardowych pod kilkoma kluczowymi względami:
-
Kontekst
this: W funkcjach strzałkowychthisjest dziedziczone leksykalnie z otaczającego kontekstu, czyli nie tworzy własnego kontekstuthis. W zwykłych funkcjachthiszależy od tego, jak funkcja została wywołana. -
Brak
arguments: Funkcje strzałkowe nie mają własnego obiektuarguments. Aby uzyskać dostęp do argumentów, należy użyć parametrów lub zmiennych zewnętrznych. -
Nie można ich używać jako konstruktorów: Funkcji strzałkowych nie można wywołać z
new, ponieważ nie mają one wewnętrznej metody [[Construct]]. -
Krótsza składnia: Funkcje strzałkowe są zazwyczaj krótsze i wygodniejsze do pisania krótkich funkcji.
Przykład:
const obj = {
value: 10,
regularFunc: function() {
console.log(this.value); // 10
},
arrowFunc: () => {
console.log(this.value); // niezdefiniowane lub wartość z kontekstu zewnętrznego
}
};
obj.regularFunc(); // wyświetli 10
obj.arrowFunc(); // wyświetli undefined
W związku z tym wybór między funkcją strzałkową a zwykłą funkcją zależy od potrzeby zarządzania kontekstem i specyfiki użycia.