Open yizihan opened 4 years ago
编写一个add()函数,支持对多个参数求和以及多次调用求和
add(1) // 1 add(1)(2) // 3 add(1, 2)(3, 4, 5)(6) // 21
function add(...args) { let arr = args // fn() 主要是拼接参数并返回自身 function fn(...newArgs) { arr = [...args, ...newArgs] return fn } // toString()函数会在打印函数的时候调用 // valueOf()函数会在获取函数原始值时调用(赋值) fn.toString = fn.valueOf = function () { return arr.reduce((acc, cur) => acc + parseInt(cur)) } // 返回函数,保证连续调用 return fn } var num1 = add(1)(2) // 调用fn.toString() console.log(num1)
编写一个add()函数,支持对多个参数求和以及多次调用求和