DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated on

Paracetamol.js💊| #80: Explica este código JavaScript

Explica este código JavaScript

¿Cuál de las siguientes funciones es una Higher Order Function?

//A
const multiplicar = a => b => a * b ;

//B
const test = (nombre, accion) => {
  return accion(nombre); 
}
console.log(test("Ana", console.log)); //Ana (por consola)
Enter fullscreen mode Exit fullscreen mode

A. muliplicar
B. test
C. Ambas
D. Ninguna

Respuesta en el primer comentario.


Oldest comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
C. Ambas

Por definición una Higher Order Function es:

  • Una función que regresa otra función.
  • Una función que puede tener funciones en sus parámetros.

multiplicar aunque no lo parezca regresa otra función, podria escribirse también de la siguiente manera:

function multiplicar(a){
  return function(b){
    return a * b;
  }
}
Enter fullscreen mode Exit fullscreen mode

Acá se observa mejor que multiplicar regresa una función anónima que realiza la operación del producto, es mucho más sencillo usar retornos implícitos para poder escribir lo mismo en una sola línea como en el ejemplo original.

test recibe 2 parámetros, uno de ellos es una función que en el ejemplo es console.log de javascript nativo, esto es motivo suficiente para que sea considera una Higher Order Function.