【发布时间】:2017-06-06 18:42:37
【问题描述】:
我如何在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
使用闭包实现此功能的最佳方法是什么?
【问题讨论】:
-
为什么要实现这个语法?
-
您可以使用
arguments对象作为函数的可变参数。 -
对不起,这被标记为重复...有一个简单的解决方案;链接的答案执行复杂且不必要的步骤。这个问题在我发布答案之前就已经结束了,但要点是:使用
arguments对象循环遍历每个传递的数字,将这些数字相加为sum之类的值。在函数的最后,返回adder.bind( null, sum )。调用此返回函数会将您传递的每个数字与之前的总和相加。
标签: javascript function method-invocation