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);