Callback-funktiot JavaScriptissä
Funktioita voidaan välittää parametreina muihin funktioihin. Tällaisia funktioparametreja kutsutaan callback-funktioiksi (callback). Katsotaan niiden toimintaa esimerkin avulla.
Oletetaan, että haluamme tehdä funktion, joka ensimmäisenä parametrina vastaanottaa taulukon ja toisena - callback-funktion, jota sovelletaan jokaisen taulukon alkioon:
function each(arr, callback) {
// tässä on jotain koodia
}
Kirjoitetaan funktiomme toteutus:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // kutsutaan callback-funktiota
}
return result;
}
Funktiomme each on yleiskäyttöinen.
Tämä tarkoittaa, että voimme välittää siihen
erilaisia callback-funktioita suorittaen erilaisia operaatioita
taulukoille. Samalla funktiomme koodi pysyy
muuttumattomana - vain
välitettävät callback-funktiot muuttuvat.
Esimerkkinä käytetään funktiotamme nostaaksemme neliöön jokaisen alkion jossain taulukossa. Välitämme tätä varten vastaavan callback-funktion parametrina:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Nyt nostetaan taulukon alkiot kuutioon. Tätä varten parametrina välitetään toinen callback-funktio, joka suorittaa tämän operaation:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Annettu taulukko numeroita. Luomamme funktion
each avulla kaksinkertaista jokainen
alkio.
Annettu taulukko merkkijonoja. Luomamme funktion
each avulla käännä kunkin merkkijonon merkit
väärinpäin.
Annettu taulukko merkkijonoja. Luomamme funktion
each avulla muuta kunkin merkkijonon
ensimmäinen kirjain isoksi.