//柯里化
//第一种
function curry(fn){
const g=(...allAges)=>allAges.length>=fn.length?
fn(...allAges):(...arg)=>g(...allAges,...arg)
return g
}
let foo=curry((x,y,z)=>{
return x+y+z
})
console.log(foo(1)(2)(3),"foo")
//第二州
function curryTwo(fn){
let arr=[]
let mySlice=arr.slice
let fnLength=fn.length
function curryTwoIng(){
arr=arr.concat(mySlice.call(arguments))
if(arr.length<fnLength){
return curryTwoIng
}
return fn.apply(this,arr)
}
return curryTwoIng
}
let fooTwo=curryTwo((x,y,z)=>{
return x+y+z
})
console.log(fooTwo(1)(2)(3),"fooTwo")
//第二州
柯里化函数
最新推荐文章于 2023-10-29 11:05:48 发布