https://segmentfault.com/a/1190000008193605

在一个函数中首先填充几个参数(然后再返回一个新函数)的技术称为柯里化(Currying。

curry创建了一个新函数,在新函数的闭包中保存了原先传递的参数。

Function.prototype.curry = function () {
    var slice = Array.prototype.slice,
        args = slice.apply(arguments),
        that = this;
    return function () {
        return that.apply(null, args.concat(slice.apply(arguments)));
    };
};


function add(n1, n2) {
    return n1 + n2;
}

var add1 = add.curry(1);

函数式编程之柯里化与反柯里化

http://louiszhai.github.io/2015/12/16/currying/

results matching ""

    No results matching ""