如何实现多次调用的功能

时间:2017-06-06 18:42:38

标签: javascript function method-invocation

如何在javascript中实现一个可以像

一样调用的加法器函数
adder(1,2)(5,6,2)(4,9,10,11)(6,7).....()

该函数应接受任意数量的参数并将它们全部加在一起。可以通过以下方式调用该函数。

adder(2,3,5) // prints 10
adder(2,3)(5) // prints 10
adder(2)(3)(5) //prints 10

使用闭包实现此功能的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

function add(...values){
 this.value=(this.value||0)+values.reduce((a,b)=>a+b),0);
 return add.bind(this);
}

您需要一种方法将值传递出函数,我将值放入上下文中:

add(1,2,3)(4,5);
alert(value);