高阶函数
高阶函数的表现形式有两种:
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)