Funkcje w JavaScript są obywatelami pierwszej klasy lub obiektami pierwszej klasy, to znaczy, że możemy robić takie rzeczy jak przekazywać je jako parametr w funkcji lub zwracać je jako wynik wykonania funkcji.
Możesz przeczytać więcej o funkcjach tutaj:
Wyjaśnię czym jest funkcja anonimowa (AF) z kodem:
Więc AF jest funkcją, która nie jest zapisana w zmiennej lub ma nazwę zadeklarowaną po identyfikatorze „function”.
Kiedy ich nie używać
Pierwszym problemem z AF jest to, że nie ma nazwy, dość głupia deklaracja, ale dla programistów, nazwa zmiennej, klasy lub metody jest główną dokumentacją, którą mamy na temat odpowiedzialności i zachowania tej zmiennej, klasy lub metody. Zła nazwa może pozwolić nam na popełnienie wielu błędów, takich jak oczekiwanie, że funkcja zwróci coś, podczas gdy jej rzeczywisty kod wypisuje coś w konsoli i zwraca void, na przykład gdybyśmy nazwali naszą „funcionResultPrinter” czymś w rodzaju „functionResultGetter”.
Więc pierwszym momentem, w którym nie musimy używać funkcji anonimowych jest sytuacja, w której potrzebujemy opisowej nazwy, a to generalnie zdarza się zawsze.
Drugim problemem jest to, że AF są deklarowane i zapisywane w pamięci w runtime. Oznacza to, że za każdym razem, gdy AF będzie wykonywany zajmie inne miejsce w pamięci, a to może zwiększyć moc obliczeniową potrzebną dla tej części kodu.
Zróbmy inny przykład z kodem:
W tym przykładzie mamy AF z prawie żadnym wymaganym wysiłkiem obliczeniowym, ale możemy wykonać ciężką pracę na funkcji, aby uzyskać to, czego potrzebujemy, a to może pochłonąć wiele zasobów z naszego serwera lub z przeglądarki klienta.
Rozwiązaniem jest nazwanie funkcji:
Wreszcie zróbmy jakiś benchmark:
Wznowienie
Mamy dwa przypadki, kiedy musimy unikać stosowania funkcji anonimowych:
- Gdy funkcja potrzebuje opisowej nazwy.
- Gdy musimy użyć funkcji, która potrzebuje dużo mocy obliczeniowej.
.