Funcții callback în JavaScript
Funcțiile pot fi transmise ca parametri altor funcții. Astfel de funcții-parametri se numesc callback-uri (callback). Să vedem cum funcționează cu un exemplu.
Să presupunem că vrem să facem o funcție care primeste primul parametru ca un array, iar al doilea - un callback, care va fi aplicat fiecărui element al array-ului:
function each(arr, callback) {
// aici este ceva cod
}
Să scriem implementarea funcției noastre:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // apelăm funcția-callback
}
return result;
}
Funcția noastră each este universală.
Aceasta înseamnă că îi putem transmite
diverse callback-uri, efectuând diferite operații
asupra array-urilor. În acest timp codul funcției noastre va rămâne
neschimbat - se vor schimba doar
callback-urile transmise.
Să exemplificăm, folosind funcția noastră, ridicăm la pătrat fiecare element al unui array. Pentru aceasta vom transmite ca parametru callback-ul corespunzător:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Și acum să ridicăm elementele array-ului la cub. Pentru aceasta ca parametru vom transmite deja un alt callback, care efectuează această operație:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Este dat un array cu numere. Cu ajutorul funcției
create de noi each măriți fiecare
element de două ori.
Este dat un array cu șiruri. Cu ajutorul funcției
create de noi each inversați caracterele
fiecărui șir în ordine inversă.
Este dat un array cu șiruri. Cu ajutorul funcției
create de noi each faceți majusculă
primul caracter al fiecărui șir.