Callback funkcije v JavaScriptu
Funkcije lahko podamo kot parametre drugim funkcijam. Takšne funkcije-parametri se imenujejo klicne funkcije (callback). Poglejmo si delo z njimi na primeru.
Recimo, da želimo narediti funkcijo, ki bo prvi parameter sprejela polje, drugi pa - klicno funkcijo, ki jo bo aplicirala na vsak element polja:
function each(arr, callback) {
// tukaj je nek koda
}
Napišimo implementacijo naše funkcije:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // kličemo klicno funkcijo
}
return result;
}
Naša funkcija each je univerzalna.
To pomeni, da ji lahko podajamo
različne klicne funkcije in izvajamo različne operacije
nad polji. Pri tem koda naše funkcije ostane
nespremenjena - spreminjali se bodo le
podane klicne funkcije.
Za primer s pomočjo naše funkcije kvadrirajmo vsak element nekega polja. Za to podajmo kot parameter ustrezno klicno funkcijo:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Zdaj pa elemente polja povzdignimo v kub. Za to kot parameter podajmo drugo klicno funkcijo, ki izvaja to operacijo:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Podano je polje s števili. S pomočjo ustvarjene
funkcije each podvojite vsak
element.
Podano je polje z nizi. S pomočjo ustvarjene
funkcije each obrnite znake
vsakega niza v obratnem vrstnem redu.
Podano je polje z nizi. S pomočjo ustvarjene
funkcije each naredite prvo
črko vsakega niza veliko.