函数柯里化与高阶函数

104 阅读1分钟

高阶函数

高阶函数的表现形式有两种:

1,传入参数为函数

2,返回一个函数

只要满足这两个条件之一就可以称之为高阶函数,通常这两个会一起都用到,也就是传入参数是一个函数,返回值也是一个函数。

数组的排序就是一个典型的高阶函数的例子:

传入参数为一个函数,处理排序逻辑

var a=[1,2,3,44,5,3,55];
a.sort(function(a,b){
    return b-a;
})
 console.log(a)

函数柯里化

第一次调用函数的参数保存起来,并且返回一个新的函数,当每次调用返回函数时,会用到第一次传入的参数,这就叫做函数柯里化,这里的实现原理也是高阶函数。

function init(arr){
    return (item)=>{
        arr.push(item);
    }
}
var arr=[1,2]
var pushItem=init(arr);
pushItem(1);
pushItem(2)
pushItem(3);
pushItem(4)
console.log(arr)