2017-06-06 78 views
-3

如何实现在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 

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

+0

你为什么想要实现这个语法? – Trott

+0

阅读关于currying - http://www.crockford.com/javascript/www_svendtofte_com/code/curried_javascript/index.html,https://stackoverflow.com/questions/5176313/javascript-curry –

+0

你可以使用['arguments '](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments)对象的函数的可变参数。 –

回答

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);