函数柯里化
柯里化是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下参数的新函数的技术
例如写一个sum函数,让sum(1)(2)返回3
function sum(a) { return function (b) { return a + b; } }
这就是柯里化
// js 中的柯里化:封装,作用:参数复用,延迟计算
//最终目的:传入多少个参数,都可以使用
js版本
function curry(fn){ let args = Array.prototype.slice.call(arguments,1) return function{ let newArgs=args.concat(Array.prototype.slice.call(arguments)) return fu.apply(null, newArgs) } }
es6版本
function curry(fn){ return currying(...args){ fn.length>=args.length?(...args1)=>currying(...args,...args1):fn(...args) } }