O lekcji
Funkcje w JavaScript są tzw. obiektami pierwszej klasy, co oznacza, że można je przekazywać jako argumenty do innych funkcji, przechowywać w zmiennych oraz zwracać jako wynik.
Funkcje jako argumenty
Funkcje można przekazywać jako argumenty do innych funkcji, co umożliwia np. stosowanie funkcji zwrotnych (callback).
Przykład:
function wykonaj(funkcja, liczba) {
console.log("Przed wywołaniem funkcji");
funkcja(liczba);
console.log("Po wywołaniu funkcji");
}
function wypiszKwadrat(liczba) {
console.log(`Kwadrat liczby ${liczba} to ${liczba * liczba}`);
}
wykonaj(wypiszKwadrat, 5);
// Wynik:
// Przed wywołaniem funkcji
// Kwadrat liczby 5 to 25
// Po wywołaniu funkcji
Zwracanie funkcji
Funkcja może zwracać inną funkcję jako wynik. Jest to potężna technika wykorzystywana np. w programowaniu funkcyjnym.
Przykład:
function stworzMnoznik(mnoznik) {
return (liczba) => liczba * mnoznik;
}
const podwoj = stworzMnoznik(2); // Tworzy funkcję mnożącą przez 2
const potroj = stworzMnoznik(3); // Tworzy funkcję mnożącą przez 3
console.log(podwoj(5)); // Wynik: 10
console.log(potroj(5)); // Wynik: 15