美文网首页
函数柯力化

函数柯力化

作者: juceyjing | 来源:发表于2017-12-29 14:06 被阅读49次

前端柯力化先举一个简单的🌰
function sum(a) {
if (arguments > 1) {
return arguments[0] + arguments[1];
}else{
var a=arguments[0];
return function(b){
return a+b;
}
}
}

当传入n个参数时,必须对函数进行扩展
function curry(fn,argLen,currArgs){
return function(){
var args=[].slice.call(arguments);
// 首次调用时未提供最后一个参数
if(currArgs!==undefined){
args = args.concat(currArgs);//拼接完成后的参数
}
// 递归出口
if (args.length == argLen) {//没有柯力化的情况下
return fn.apply(this, args);
} else {//拼接的参数不等于现在的参数
return curry(fn, argLen, args);
}
}

}

相关文章

网友评论

      本文标题:函数柯力化

      本文链接:https://www.haomeiwen.com/subject/aamigxtx.html