curry
_.curry(func, [arity=func.length])
创建一个函数,该函数接收一个或多个 func 的参数。 当该函数被调用时,如果 func 所需要传递的所有参数都被提供,则直接返回 func 所执行的结果。 否则继续返回该函数并等待接收剩余的参数。 可以使用 func.length 强制需要累积的参数个数。
这个 _.curry.placeholder
的值,默认是以 _
作为附加部分参数的占位符。
注意: 这个方法不会设置 "length" 到 curried 函数上。
参数
func (Function)
需要 curry 的函数
[arity=func.length] (number)
需要提供给
func
的参数数量
返回值 (Function)
返回 curry 后的函数
示例
var abc = function(a, b, c) {
return [a, b, c];
};
var curried = _.curry(abc);
curried(1)(2)(3);
// => [1, 2, 3]
curried(1, 2)(3);
// => [1, 2, 3]
curried(1, 2, 3);
// => [1, 2, 3]
// 使用了占位符
curried(1)(_, 3)(2);
// => [1, 2, 3]