Funções de Callback em JavaScript
Funções podem ser passadas como parâmetros para outras funções. Tais funções-parâmetro são chamadas de callbacks (callback). Vamos ver como trabalhar com elas através de um exemplo.
Suponha que queremos fazer uma função que, pelo primeiro parâmetro, receberá um array, e pelo segundo - um callback, que será aplicado a cada elemento do array:
function each(arr, callback) {
// algum código aqui
}
Vamos escrever a implementação da nossa função:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // chamamos a função de callback
}
return result;
}
Nossa função each é universal.
Isso significa que podemos passar para ela
diferentes callbacks, executando diferentes operações
sobre os arrays. Ao mesmo tempo, o código da nossa função permanecerá
inalterado - apenas os
callbacks passados é que mudarão.
Vamos, por exemplo, usar nossa função para elevar ao quadrado cada elemento de um array qualquer. Para isso, passaremos como parâmetro o callback correspondente:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Agora, vamos elevar os elementos do array ao cubo. Para isso, passaremos como parâmetro um callback diferente, que executa esta operação:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Dado um array com números. Usando a função
each que criamos, dobre cada
elemento.
Dado um array com strings. Usando a função
each que criamos, inverta os caracteres
de cada string em ordem reversa.
Dado um array com strings. Usando a função
each que criamos, torne maiúscula
a primeira letra de cada string.