Callback funkcie v JavaScripte
Funkcie je možné odovzdávať ako parametre do iných funkcií. Takéto funkcie-parametre sa nazývajú kolbeky (callback). Pozrime sa na ich prácu na príklade.
Povedzme, že chceme vytvoriť funkciu, ktorá prvým parametrom bude prijímať pole, a druhým - kolbek, ktorý bude aplikovať na každý prvok pola:
function each(arr, callback) {
// tu nejaký kód
}
Napíšme implementáciu našej funkcie:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // voláme funkciu-kolbek
}
return result;
}
Naša funkcia each - je univerzálna.
To znamená, že do nej môžeme odovzdávať
rôzne kolbeky, vykonávajúc rôzne operácie
s poliami. Pritom kód našej funkcie zostane
nezmenený - budú sa meniť len
odovzdávané kolbeky.
Skúsme napríklad pomocou našej funkcie umocniť na druhú každý prvok nejakého poľa. Na to odovzdajme ako parameter príslušný kolbek:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
A teraz umocnime prvky poľa na tretiu. Na to ako parameter odovzdajme už iný kolbek, vykonávajúci túto operáciu:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Dané pole s číslami. Pomocou vytvorenej
funkcie each zväčšite každý
prvok dva krát.
Dané pole s reťazcami. Pomocou vytvorenej
funkcie each otočte znaky
každého reťazca v opačnom poradí.
Dané pole s reťazcami. Pomocou vytvorenej
funkcie each urobte veľkým
prvý znak každého reťazca.