abao呢 level
获赞
177
粉丝
33
关注
0
看过 TA
44
2017
IP属地:未知
暂未填写个人简介
私信
关注
2015-08-19 21:07
已编辑
前两天一位朋友发邮件问了我关于这道经典的面试题,其实在这位朋友给我发邮件之前曾经也有人给我发过邮件询问过此类笔试题,思前想后觉得写出来给那些还正在解答此题中的朋友们。 题的原型: var add = function (m) {       var temp = function (n) {         return add(m + n);     }       temp.toString = function () {      ...
qingli:其实。。。就是函数柯里化curry,另外取值是调用valueOf,valueOf调用toString,所以改valueOf可以少一步 function curry(fn) { let result = 0 const _fn = function () { result += fn.apply(this, arguments) return _fn } _fn.valueOf = function() { const temp = result result = 0 return temp } return _fn } function add() { return Array.prototype.reduce.call(arguments, function(p, v) { return p + v }, 0) } add = curry(add) add(2,3,4)(2)(3) === 14 这个是不定参数的,最后结果是数字,这个还有很多变种。。。参数固定的话可以把result改成数组,每次调用就push进去,最后取值时全部塞到被curry的函数里。具体实现有很多。可以一一尝试
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务