jesteś tutaj
477
Funkcje pierwszej klasy
Chwileczkę, potrzebujemy więcej napojów!
Wstrzymajcie rejestrację pasażerów, dowiedzieliśmy się właśnie, że wydanie
jednego napoju na cały przelot to za mało. Stewardesy twierdzą, że obsługa
pasażera w trakcie typowego lotu wygląda inaczej.
function serveCustomer(passenger) {
createDrinkOrder(passenger);
// Zbieramy zamówienie na posiïek.
createDrinkOrder(passenger);
createDrinkOrder(passenger);
// WyĂwietlamy film.
createDrinkOrder(passenger);
// Zbieramy Ămieci.
}
Zaktualizowaliśmy kod,
uwzględniając w nim fakt,
że podczas lotu funkcja
createDrinkOrder będzie
wywoływana kilka razy.
Ludzie,
dajcie spokój, czy
to są jakieś byle
tanie linie lotnicze?
Jak widać, z jednej strony, zaprojektowaliśmy nasz kod całkiem dobrze, gdyż
dodanie kolejnych wywołań funkcji
createDrinkOrder
działa bez zarzutu.
Jednak z drugiej strony, zupełnie niepotrzebnie w funkcji
createDrinkOrder
za każdym razem określamy typ obsługiwanego pasażera.
Mógłbyś powiedzieć, że to przecież tylko kilka wierszy kodu. No pewnie, jednak
to tylko prosty przykład w książce. A co by było, gdybyś w rzeczywistości musiał
sprawdzać typ biletu, komunikując się z serwerem z aplikacji działającej na
urządzeniu mobilnym? Byłoby to zarówno czasochłonne, jak i kosztowne.
Jednak nie musisz się obawiać, gdyż funkcje pierwszej klasy przybyły właśnie
jak rycerz na białym koniu, aby nam pomóc. Jak się zaraz przekonasz, nasz
problem można rozwiązać, korzystając z możliwości zwracania funkcji jako
wyniku wykonania innej funkcji.
Zaostrz ołówek
Jak sądzisz, co robi przedstawiony poniżej fragment kodu?
Czy potrafisz podać jakieś przykłady jego użycia?
function addN(n) {
var adder = function(x) {
return n + x;
};
return adder;
}
Tutaj zapisz odpowiedź.
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.