Callback funkcijas JavaScript
Funkcijas var padot kā parametrus citām funkcijām. Šādas funkcijas-parametri tiek sauktas par callback funkcijām (callback). Apskatīsim darbu ar tām piemērā.
Pieņemsim, ka mēs vēlamies izveidot funkciju, kas pirmo parametru pieņems masīvu, bet otro - callback funkciju, kas tiks piemērota katram masīva elementam:
function each(arr, callback) {
// šeit kāds kods
}
Uzrakstīsim mūsu funkcijas realizāciju:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // izsaucam callback funkciju
}
return result;
}
Mūsu funkcija each - universāla.
Tas nozīmē, ka mēs varam tai padot
dažādas callback funkcijas, veicot dažādas operācijas
ar masīviem. Šajā gadījumā mūsu funkcijas kods paliks
nemainīgs - mainīsies tikai
padotās callback funkcijas.
Piemēram, izmantosim mūsu funkciju, lai katru elementu kādā masīvā paceļu kvadrātā. Lai to izdarītu, padodam kā parametru atbilstošo callback funkciju:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Tagad paceļim masīva elementus kubā. Lai to izdarītu, kā parametru padodam citu callback funkciju, kas veic šo operāciju:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Dots skaitļu masīvs. Izmantojot mūsu izveidoto
funkciju each, palieliniet katru
elementu divas reizes.
Dots virkņu masīvs. Izmantojot mūsu izveidoto
funkciju each, apgrieziet katras virknes
rakstzīmes apgrieztā secībā.
Dots virkņu masīvs. Izmantojot mūsu izveidoto
funkciju each, padariet lielo burtu
katrai virknes pirmajai rakstzīmei.