const curry = (binaryFn) => {
return function (firstArg) {
return function (secondArg) {
return binaryFn (firstArg, secondArg) ;
};
};
};
const curry = (fn) => {
if (typeof fn !== ‘function’) {
throw Error(‘No function provided’)
}
return function curriedFn (…args) {
if (fn.length > args.length) { // 传入的参数要大于原来fn的参数
return function () {
return curriedFn.apply(null, args.concat([].slice.call(arguments)))
}
}
return fn.apply(null, args)
}
}
在这里插入代码片