Higher order functions(funções de ordem superior) são funções que aceitam outra função como paramêtro(callback) ou retornam uma função.
Callback
Funções callback são as funções passadas como paramêtro.
Um método de arrays chamado forEach() aceita callbacks:
const numbers = [5, 25, 50]
function sumArray() {
// declarando variável acumuladora
let sum = 0
numbers.forEach(element => {
// função callback
// element é cada elemento do array numbers
sum+=element
// que vai ser somado e guardado na variável sum
});
console.log(`\nTotal: ${sum}\n`)
}
Outra higher order funtcion importante é o setInterval()
setInterval(sumArray, 3000)
A cada 3 seg o setInterval ira executar o callback sumArray
Retornando uma função como valor
Exemplo 1:
function higherOrderFunction() {
console.log("Hello!");
return function (y){
console.log("Good bye!");
}
}
Se chamamos a função normalmente:
higherOrderFunction();
// vai imprimir apenas "Hello!"
Podemos armazenar em uma variavel para guardar o retorno da função
const higherOrder = higherOrderFunction();
console.log(higherOrder());
// Hello!
// Good bye!
Exemplo 2:
function higherOrderFunction(x) {
return (y) => y + x;
// retornando uma função arrow que faz a soma com os argumentos
}
Aqui o primeiro paramêtro pertence a higherOrderFunction e o segundo é da função que está sendo retornada:
higherOrderFunction(1)(2);
// 3
ou
const higherOrder = higherOrderFunction(1)(2);
Isso é tudo, até a proxima!
Top comments (0)