柯里化面试题
//定义一个数组专门存储所有的参数 var _args = Array.prototype.slice.call(arguments); //在 内部声明一个函数,利用闭包的特性保存_args并收集所有的参值 var _adder = function () { _args.push(...arguments); return _adder; } //利用toStringy隐式转换的特性,当最后执行隐式转换,并计算最终的值返回 _adder.toString=function(){ return _args.reduce(function(a,b){ return a+b; }) } return _adder; } console.log(add(1)(2)(3)) add(1)(2)(3) // 6 add(1, 2, 3)(4) // 10 add(1)(2)(3)(4)(5) // 15 add(2, 6)(1) // 9 来源: CSDN 作者: @呵呵 链接: https://blog.csdn.net/weixin_41639609/article/details/103732915