67-一道巧妙的面试题 发表于 2018-08-03 | 分类于 前端-02-js基础复习 | 博客园 实现一个函数,运算结果可以满足如下预期结果: 123add(1)(2) // 3add(1, 2, 3)(10) // 16add(1)(2)(3)(4)(5) // 15 解法: 12345678910111213141516function add () { var args = Array.prototype.slice.call(arguments); var fn = function () { var arg_fn = Array.prototype.slice.call(arguments); return add.apply(null, args.concat(arg_fn)); } fn.valueOf = function () { return args.reduce(function(a, b) { return a + b; }) } return fn;}