题目:
实现一个add方法,使计算结果能够满足如下预期:
add(1)(2)(3) = 6;
add(1, 2, 3)(4) = 10;
add(1)(2)(3)(4)(5) = 15;
分析思路一:实现累加功能
function add(){
let args = [...arguments];
let inner = function(){
args.push(...arguments);
let sum = args.reduce((prev,cur)=>prev+cur)
return sum
}
return inner
}
console.log(add(1)(2)) //✔
console.log(add(1)(2)(3)) //❌
上述函数好像实现了功能,但是当我们再增加一个括号就会出错,所以说未能实现任意延时输入参数的功能
分析思路二:实现延时输入参数功能
解决办法:1. 预先设置无数多个参数 (不现实pass)2. 递归来解决
function