Tengo dos preguntas con respecto al siguiente ejemplo de código:
function greaterThan(n) { return m => m > n; } let greaterThan10 = greaterThan(10); console.log(greaterThan10(11)); //returns true Por lo que entiendo, la función greaterThan(n) devuelve una función que toma el parámetro m , pero aquí comienza a ser complicado para mí:
m no está declarada y aún funciona correctamente dentro de este ejemplo de código?greaterThan10 se declara como una variable en la línea 4 y hereda el valor de greaterThan(10) . ¿Cómo puede comportarse como una función en la línea 5, donde esta "variable" toma otro número entero?greaterThan es una función de orden superior; devuelve otra función que crea en función de las entradas.
m => m > n es una función de flecha.
Es equivalente a esto:
function greaterThan(n) { return function (m) { return m > n; } } let greaterThan10 = greaterThan(10); console.log(greaterThan10(11)); //returns true