柯理化函数-初步封装

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了柯理化函数-初步封装相关的知识,希望对你有一定的参考价值。

let currying = function(fn) 
    // args获取第一个方法内的全部参数
    let args = Array.prototype.slice.call(arguments, 1);
    
    return function() 
        // 将后面方法里的全部参数和args进行合并
        var newArgs = args.concat(Array.prototype.slice.call(arguments));
        
        // 把合并后的参数通过apply作为fn的参数并执行
        return fn.apply(this, newArgs);
    ;
;

通过闭包把初步参数给保存下来,然后通过获取剩下的arguments进行拼接,最后执行需要currying的函数。但是,有缺陷,这样返回的只能多扩展一个参数,currying(a)(b);这样的话,就不支持多参数调用。

以上是关于柯理化函数-初步封装的主要内容,如果未能解决你的问题,请参考以下文章

函数柯理化

scala 函数(柯理化)

柯理化函数编程思想

柯理化

JS`柯理化`

函数柯理化之参数复用