freeCodeCamp/guide/portuguese/javascript/higher-order-functions/index.md

1.7 KiB

title localeTitle
Higher Order Functions Funções de ordem superior

Funções de ordem superior

Uma função de ordem superior é qualquer função que retorna uma função quando executada, assume uma função como um ou mais de seus argumentos ou ambos. Se você usou algum dos métodos Array como map ou filter , ou passou uma função de callback para o $.get do jQuery, você já trabalhou com Higher Order Functions.

Quando você usa Array.map , você fornece uma função como seu único argumento, que se aplica a todos os elementos contidos na matriz.

var arr = [ 1, 2, 3 ]; 
 
 var arrDoubled = arr.map(function(num) { 
  return num * 2; 
 }); 
 
 console.log(arrDoubled); // [ 2, 4, 6 ] 

Funções de ordem mais alta também podem retornar uma função. Por exemplo, você pode fazer uma função chamada multiplyBy que recebe um número e retorna uma função que multiplica outro número fornecido pelo primeiro número fornecido. Você pode usar essa abordagem para criar uma função multiplyByTwo para passar para Array.map . Isso lhe dará o mesmo resultado que você viu acima.

function multiplyBy(num1) { 
  return function(num2) { 
    return num1 * num2; 
  } 
 } 
 
 var multiplyByTwo = multiplyBy(2); 
 
 var arr = [ 1, 2, 3 ]; 
 
 var arrDoubled = arr.map(multiplyByTwo); 
 
 console.log(arrDoubled); // [ 2, 4, 6 ] 

Consulte o guia sobre Closures para obter mais informações sobre como o multiplyByTwo mantém uma referência a num1 no exemplo acima.

Mais informações sobre Closures