Callback funkce v JavaScriptu
Funkce lze předávat jako parametry do jiných funkcí. Takové funkce-parametry se nazývají kolbeky (callback). Podívejme se na jejich práci na příkladu.
Předpokládejme, že chceme vytvořit funkci, která prvním parametrem přijme pole a druhým - kolbek, který bude aplikován na každý prvek pole:
function each(arr, callback) {
// zde nějaký kód
}
Napišme implementaci naší funkce:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // voláme funkci-kolbek
}
return result;
}
Naše funkce each je univerzální.
To znamená, že do ní můžeme předávat
různé kolbeky a provádět různé operace
nad poli. Přitom kód naší funkce zůstane
nezměněn - budou se měnit pouze
předávané kolbeky.
Pro příklad pomocí naší funkce umocněme na druhou každý prvek nějakého pole. Pro tento účel předáme jako parametr odpovídající kolbek:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
A nyní umocněme prvky pole na třetí. Pro tento účel jako parametr předáme již jiný kolbek, provedoucí tuto operaci:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Je dáno pole s čísly. Pomocí naší vytvořené
funkce each zvětšete každý
prvek dvakrát.
Je dáno pole s řetězci. Pomocí naší vytvořené
funkce each otočte znaky
každého řetězce v opačném pořadí.
Je dáno pole s řetězci. Pomocí naší vytvořené
funkce each udělejte velkým
první znak každého řetězce.