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

41 lines
1.7 KiB
Markdown

---
title: Higher Order Functions
localeTitle: Funciones de orden superior
---
## Funciones de orden superior
Una función de orden superior es cualquier función que devuelve una función cuando se ejecuta, toma una función como uno o más de sus argumentos, o ambos. Si ha usado alguno de los métodos de `Array` como `map` o `filter` , o si ha pasado una función de devolución de llamada a `$.get` jQuery, ya ha trabajado con las Funciones de orden superior.
Cuando utiliza `Array.map` , proporciona una función como único argumento, que se aplica a todos los elementos contenidos en la matriz.
```javascript
var arr = [ 1, 2, 3 ];
var arrDoubled = arr.map(function(num) {
return num * 2;
});
console.log(arrDoubled); // [ 2, 4, 6 ]
```
Las funciones de orden superior también pueden devolver una función. Por ejemplo, puedes hacer una función llamada `multiplyBy` que toma un número y devuelve una función que multiplica otro número que proporcionas por el primer número proporcionado. Puede utilizar este enfoque para crear una función `multiplyByTwo` para pasar a `Array.map` . Esto te dará el mismo resultado que viste anteriormente.
```javascript
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 la guía de [cierres](https://guide.freecodecamp.org/javascript/closures) para obtener más información sobre cómo `multiplyByTwo` mantiene una referencia a `num1` en el ejemplo anterior.
[Más información sobre cierres](https://eloquentjavascript.net/05_higher_order.html)