⊗jsPmFNClb 255 of 505 menu

Funkcje zwrotne (callback) w JavaScript

Funkcje można przekazywać jako parametry do innych funkcji. Takie funkcje-parametry nazywają się funkcjami zwrotnymi (callback). Spójrzmy na ich działanie na przykładzie.

Załóżmy, że chcemy stworzyć funkcję, która pierwszym parametrem będzie przyjmować tablicę, a drugim - funkcję zwrotną, która będzie aplikowana do każdego elementu tablicy:

function each(arr, callback) { // tutaj jakiś kod }

Napiszmy implementację naszej funkcji:

function each(arr, callback) { let result = []; for (let elem of arr) { result.push( callback(elem) ); // wywołujemy funkcję zwrotną } return result; }

Nasza funkcja each jest uniwersalna. Oznacza to, że możemy przekazywać do niej różne funkcje zwrotne, wykonując różne operacje na tablicach. Przy tym kod naszej funkcji pozostanie niezmieniony - zmieniać się będą tylko przekazywane funkcje zwrotne.

Spójrzmy dla przykładu, jak za pomocą naszej funkcji podnieść do kwadratu każdy element jakiejś tablicy. W tym celu przekażemy odpowiednią funkcję zwrotną jako parametr:

let result = each([1, 2, 3, 4, 5], function(num) { return num ** 2; }); console.log(result);

A teraz podnieśmy elementy tablicy do sześcianu. W tym celu jako parametr przekażemy już inną funkcję zwrotną, wykonującą tę operację:

let result = each([1, 2, 3, 4, 5], function(num) { return num ** 3; }); console.log(result);

Dana jest tablica z liczbami. Za pomocą stworzonej przez nas funkcji each zwiększ każdy element dwukrotnie.

Dana jest tablica z ciągami znaków. Za pomocą stworzonej przez nas funkcji each odwróć znaki każdego ciągu w odwrotnej kolejności.

Dana jest tablica z ciągami znaków. Za pomocą stworzonej przez nas funkcji each zrób wielką pierwszą literę każdego ciągu.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć