500
Rozdział 11 .
Wprowadzenie do funkcji anonimowych
Rzut oka na inną stronę funkcji…
Poznałeś już dwie strony funkcji: tę formalną, deklaratywną stronę funkcji oraz znacznie bardziej
ekspresyjną stronę wyrażeń funkcyjnych. A teraz nadszedł czas, by przedstawić ich jeszcze inną,
interesującą stronę, czyli
funkcje anonimowe.
Mówiąc o funkcjach anonimowych, mamy na myśli
funkcje, które nie mają nazwy. Jak coś takiego
jest możliwe? No cóż, kiedy tworzymy funkcje z wykorzystaniem deklaracji,
bez wątpienia
mają one nazwy
. Jednak w przypadku, gdy budujemy funkcje przy użyciu wyrażeń funkcyjnych,
nie musimy podawać ich nazw.
Pewnie sobie pomyślałeś, że to całkiem interesujące i zapewne naprawdę można tak zrobić, ale co
z tego? Kiedy użyjemy funkcji anonimowych, niejednokrotnie możemy znacząco skrócić nasz kod,
a także sprawić, że będzie bardziej zwięzły i czytelny, efektywniejszy i łatwiejszy w utrzymaniu.
A zatem, przekonajmy się, jak można używać funkcji anonimowych. Zaczniemy od fragmentu
kodu, który poznałeś już wcześniej, i pokażemy, jak wykorzystywać funkcje anonimowe.
function handler() { alert(”O tak, strona zostaïa wczytana!”); }
window.onload = handler;
To jest procedura obsługi zdarzeń load,
którą tworzymy w standardowy sposób.
Najpierw definiujemy funkcję.
Funkcja ta ma nazwę handler.
Następnie zapisujemy tę funkcję we
właściwości onload obiektu window,
używając jej nazwy handler.
A kiedy strona zostanie
wczytana, przeglądarka
wywoła funkcję handler.
Zaostrz ołówek
Skorzystaj ze swojej wiedzy na temat funkcji i zmiennych,
aby wskazać, które z poniższych stwierdzeń są prawdziwe.
Zmienna handler zawiera referencję do funkcji.
Kiedy przypisujemy handler właściwości
window.onload, zapisujemy w niej referencję do
funkcji.
Jedynym powodem istnienia zmiennej handler
jest zapisanie jej we właściwości window.onload.
Już nigdy więcej nie użyjemy funkcji handler,
gdyż jest to kod, który z założenia ma być
wykonywany wyłącznie podczas pierwszego
wczytania strony.
Dwukrotne wywoływanie procedury obsługi
zdarzeń load nie jest dobrym pomysłem — może
ono doprowadzić do wystąpienia problemów,
gdyż ten kod służy zazwyczaj do wykonywania
czynności związanych z inicjalizacją całej strony.
Wyrażenia funkcyjne tworzą referencje do funkcji.
Czy wspominaliśmy, że przypisując funkcję
handler właściwości window.onload,
zapisujemy w niej referencję do funkcji?
Get Programowanie w JavaScript Rusz głową! now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.