1.防抖函数
2.组合函数
3.函数柯里化
防抖函数
function debounce(fn ,delay){
let timer;
return (el)=>{
clearTimeout(timer)
timer = setTimeout(()=>{
fn(el)
},delay)
}
}
组合函数
function add(x){
return x+2
}
function double(x){
return x*2
}
function compose(...fn){
return (x)=>{
return fn.reduceRight((arg,fn)=>{
return fn(arg)
},x)
}
}
let Fn = compose(add,double)
let res = Fn(4);
console.log(res) // 10
函数柯里化
function curry(...args){
return (...args1)=>{
if(args1.length){
return curry(...args,...args1)
}else{
return args.reduce((a,b)=> a+b,0)
}
}
}
console.log(curry(2)(4)(5)())//11