Funciones de orden superior¶
Introducción¶
Funciones que llaman a otras funciones o que devuelven funciones (closures), se conocen como funciones de orden superior.
Sirven para esconder el detalle, es decir, proporcionan un mayor nivel de abstracción, permitiéndonos pensar a un mayor nivel de abstracción.
Advertencia
el coste de la elegancia es la eficiencia. Llamar funciones en JavaScript es costoso.
Ejemplos típicos¶
Hacer forEach, filter, map, reduce, every, some, ...
Por ejemplo:
> [NaN,NaN,NaN].every( isNaN )
true
> [5,NaN,false].some(isNaN)
true
Composición¶
Las funciones pueden componerse.
Recursión¶
Una función puede llamarse a sí misma.
Binding¶
Todas las funciones tienen el método bind. Ello permite crear una nueva función fijando alguno de los parámetros:
> function f(a,b) { return a + b}
undefined
> var addtwo = f.bind(a,2)
undefined
> addtwo(4)
6