Callback-funktioner i JavaScript
Funktioner kan skickas som parametrar till andra funktioner. Sådana funktionsparametrar kallas callback-funktioner (callback). Låt oss titta på hur de fungerar med ett exempel.
Låt oss säga att vi vill skapa en funktion som i första hand tar en array som parameter, och i andra hand - en callback-funktion, som kommer att appliceras på varje element i arrayen:
function each(arr, callback) {
// här finns någon kod
}
Låt oss skriva implementationen av vår funktion:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // anropar callback-funktionen
}
return result;
}
Vår funktion each är universell.
Det betyder att vi kan skicka olika
callback-funktioner till den, och utföra olika operationer
på arrayer. Samtidigt förblir koden i vår funktion
oförändrad - bara
de skickade callback-funktionerna kommer att ändras.
Låt oss som ett exempel använda vår funktion för att kvadrera varje element i en array. För att göra detta skickar vi en motsvarande callback-funktion som parameter:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Och låt oss nu upphöja elementen i arrayen i kubik. För att göra detta skickar vi som parameter en annan callback-funktion, som utför denna operation:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Given en array med siffror. Med hjälp av funktionen
each som vi skapade, fördubbla varje
element.
Given en array med strängar. Med hjälp av funktionen
each som vi skapade, vänd på tecknen
i varje sträng i omvänd ordning.
Given en array med strängar. Med hjälp av funktionen
each som vi skapade, gör första
bokstaven i varje sträng versal.