js 柯里化函数求和

累加求和:把每次调用的首个参数加在一起,在无参数调用时返回;

function add (num){
    var res = 0;
    res += num;
    return function temp(y){
        if(arguments.length === 0){
            retrun res;
}else{
    res += y;
    return temp;
}
}
}

想要的输出,应该如何修改,感谢各位

console.log(add()) // undefined
console.log(add(2)()) // 2
console.log(add(2)(3)) // 5
console.log(add(2)(3)(4)) // 9
阅读 1.6k
1 个回答
  1. 你要不停的调用,那么要返回函数体。
  2. 前两个打印带一个无参数调用,到后面两个没有。按照你写的就会最后返回的temp没有被执行。不能返回纯函数,要返回结构体。
  3. 下面这是个示意,不能直接用

    
    function add (num){
     return {
       valueOf(){
         return num
       },
       (y){
         return add(y+num)
       }
     }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题