如何实现add(1)(2)(3)=6

相当于一个简单的函数柯里化

function plus(x,y,z){
    
    
    return [
        ...arguments
    ].reduce((a, b) => a + b)
}
function currying(fn){
    
    
    let len = fn.length
    let store = []
    return function _plus(...args){
    
    
        store =[...store,...args]
        if(store.length<len){
    
    
            return _plus
        }else{
    
    
            return fn.call(this, ...store)
        }
    }
}
let add = currying(plus)
console.log(add(1)(2)(3))

猜你喜欢

转载自blog.csdn.net/weixin_38616850/article/details/109236710
今日推荐