将作为参数传递的多个变量添加到函数currying [英] Add multiple variable passed as parameter to function currying

查看:37
本文介绍了将作为参数传递的多个变量添加到函数currying的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用函数currying实现这些方案?

How can I achieve these scenarios using function currying?

add(3,4)(3)
add(3)(4)(3)
add(3)(4,3)

我读了很多博客,找不到这种情况.有人可以帮我吗?

I have read so many blogs not able to find this kind of scenario. can someone help me on this.

推荐答案

像这样吗?

var total = 0;
function add(){
    // Add up every argument received
    for (var i in arguments)
        total += arguments[i];
        
    return add;
}

add(3,4)(3);
console.log(total);

add(3)(4)(3);
console.log(total);

add(3)(4,3);
console.log(total);

如果您不希望函数依赖于全局变量,请将该值另存为 add 函数的属性

If you do not want the function to depend on global variable, save the value as an attribute of add function instead

function add(){
    // Add up every argument received
    for (var i in arguments)
        add.total += arguments[i];
        
    return add;
}

add.total = 0;
add.toString = function(){
  var total = add.total;
  
  add.total = 0;
  
  return total;
};

var sum1 = add(3,4)(3);
alert( sum1 );

var sum2 = add(3)(4)(3);
alert( sum2 );

var sum3 = add(3)(4,3);
alert( sum3 );

这篇关于将作为参数传递的多个变量添加到函数currying的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆