柯里化
发布日期:2021-06-24 18:22:50 浏览次数:2 分类:技术文章

本文共 612 字,大约阅读时间需要 2 分钟。

缘由:

有一道题:

实现一个函数sum ,运算结果可以满足如下预期sum(1,2,3).valueOf()  //6sum(2,3)(2).valueOf() //7sum(1)(2)(3)(4).valueOf()  //10sum(1)(4,1)(2).valueOf()  //9

明眼一看就知道是把所有的参数相加,每次返回该函数,不断调用。

怎么实现呢?请看:

function sum(){    var args = [].slice.call(arguments);    var fn = function() {        var newArgs = args.concat([].slice.call(arguments));        return sum.apply(null,newArgs);    }    fn.valueOf = function() {        return args.reduce(function(a, b) {            return a + b;        })    }    return fn;}  sum(1,2,3).valueOf();  //6sum(2,3)(2).valueOf(); //7sum(1)(2)(3)(4).valueOf();  //10sum(1)(4,1)(2).valueOf();  //9

转载地址:https://blog.csdn.net/weixin_34248258/article/details/88631119 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Spring Cloud Gateway 使用 Token 验证
下一篇:区块链技术特点之去中心化特性

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月08日 12时33分32秒