Callback függvények a JavaScriptben
A függvényeket paraméterként lehet átadni más függvényeknek. Az ilyen függvény paramétereket callback-nek (callback) nevezzük. Nézzük meg a munkájukat egy példán keresztül.
Tegyük fel, hogy szeretnénk készíteni egy függvényt, amely az első paraméterként egy tömböt fogad, a második pedig egy callback-et, amelyet a tömb minden elemére alkalmazni fog:
function each(arr, callback) {
// itt valamilyen kód
}
Írjuk meg a függvényünk megvalósítását:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // meghívjuk a callback függvényt
}
return result;
}
A each függvényünk univerzális.
Ez azt jelenti, hogy különböző callback-eket adhatunk át neki,
és különböző műveleteket hajthatunk végre a tömbökön.
Eközben a függvényünk kódja változatlan marad - csak az
átadott callback-ek fognak változni.
Példaként a függvényünk segítségével emeljük négyzetre egy tömb minden elemét. Ehhez adjuk át paraméterként a megfelelő callback-et:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Most pedig emeljük a tömb elemeit kobbra. Ehhez paraméterként egy másik callback-et adunk át, amely ezt a műveletet végzi:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Adott egy számokból álló tömb. Az általunk létrehozott
each függvény segítségével növelje meg minden
elemet kétszeresére.
Adott egy sztringekből álló tömb. Az általunk létrehozott
each függvény segítségével fordítsa meg
minden sztring karaktereit fordított sorrendben.
Adott egy sztringekből álló tömb. Az általunk létrehozott
each függvény segítségével tegye nagybetűssé
minden sztring első karakterét.