function currying(fn,length){
return function(...args){
if(args.length>=length){
return fn(...args)
}
// bind()函数既保留了上一个调用的参数,又返回一个新函数
return currying(fn.bind(null,...args),length-args.length)
}
}
function add(...args){
return args.reduce((a,b)=>a+b)
}
add = currying(add,5) // 一共有几项length就是几
console.log(add(1)(2)(3)(4,5)); // 15
函数柯里化 ,经典面试题
最新推荐文章于 2024-04-21 14:00:34 发布