Callback-funksjoner i JavaScript
Funksjoner kan overføres som parametere til andre funksjoner. Slike funksjonsparametere kalles callbacks (callback). La oss se hvordan de fungerer med et eksempel.
La oss si at vi ønsker å lage en funksjon som tar en array som første parameter, og en callback som andre parameter, som vil bli brukt på hvert element i arrayen:
function each(arr, callback) {
// noe kode her
}
La oss skrive implementasjonen av funksjonen vår:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // kaller callback-funksjonen
}
return result;
}
Funksjonen vår each er universell.
Dette betyr at vi kan sende inn
forskjellige callbacks og utføre forskjellige operasjoner
på arrayer. Samtidig vil koden i funksjonen vår forbli
uendret - det er bare de overførte
callback-funksjonene som endres.
La oss for eksempel bruke funksjonen vår til å kvadrere hvert element i en array. For å gjøre dette sender vi inn en passende callback som parameter:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
La oss nå opphøye elementene i arrayen i tredje potens. For å gjøre dette sender vi inn en annen callback som parameter, som utfører denne operasjonen:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Det er gitt en array med tall. Bruk funksjonen
vi har laget each til å doble hvert
element.
Det er gitt en array med strenger. Bruk funksjonen
vi har laget each til å reversere tegnene
i hver streng i omvendt rekkefølge.
Det er gitt en array med strenger. Bruk funksjonen
vi har laget each til å gjøre den første
bokstaven i hver streng til stor bokstav.