@Bios
2018-12-10T08:43:59.000000Z
字数 502
阅读 888
js
在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
中心思想:降低通用性,提高适用性
特点:
- 参数复用
- 提前返回 (return)
apply会执行函数
传入参数时,先把他们存在数组中,当没有传参就执行计算
- 参数的多少跟函数体的复杂性成正比
- 参数的多少跟函数的维护难度成正比
- 参数的多少跟用户的使用难度成正比
// 通用
function curry(fn, args) {
var length = fn.length, // 获取方法的参数个数
args = args || [];
return function() {
var _args = args.slice(0), i;
for (i=0;i<arguments.length; i++) {
_args.push(arguments[i]);
}
if (_args.length < length) {
return curry.call(this, fn, _args);
} else {
return fn.apply(this, _args);
}
}
}