自己实现
function curry(fn, context){
let len = fn.length;
context = context || this;
let mid = (…args) => {
if(len > args.length){
return (…args2) => mid.call(context, …args, …args2)
}else{
return fn.call(context, …args)
}
}
return mid;
}
var curry = (fn) =>
mid = (…args) =>
fn.length > args.length ?
(…args2) => mid(…args, …args2) :
fn(…args)
var compose = (…args) => {
return (…args2) => {
let start = args.length - 1;
let result = args[start].apply(this, args2);
while(start—) result = args[start].call(this, result);
return result
}
}
https://github.com/mqyqingfeng/Blog/issues/45
组合
https://github.com/mqyqingfeng/Blog/issues/46
递归
https://github.com/mqyqingfeng/Blog/issues/49