是否有办法创建一个同时适用于递归调用(例如 (1)(2)(3)(4))和多个参数(例如 (1, 2, 3, 4))的求和函数?
像这样:
sum(5, 5) // 10
sum(5)(5) // 10
谢谢。
最佳答案
您可以为下一个参数返回一个函数并实现 toString
方法。
function sum() {
var add = function (a, b) { return a + b; },
value = Array.prototype.reduce.call(arguments, add, 0);
function f() {
value = Array.prototype.reduce.call(arguments, add, value);
return f;
};
f.toString = function () { return value; };
return f;
}
console.log(sum(5, 5));
console.log(sum(5)(5));
console.log(sum(3, 4, 5)(6, 7));
关于javascript - Sum 函数使用递归和多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45643260/