函数柯里化

143 阅读1分钟
百度百科上说,在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

看上面的解释有些抽象,写个实例来看看柯里化具体怎么样

//普通写法
let addtion = (a,b) => a+b

//柯里化写法
let curry = (a) => (b) => a+b


addtion(1,2)
curry(1)(2)

很明显可以看出,柯里化函数是将参数一个一个传入函数中。

封装的柯里化函数

const curry = (fn, ...args) =>
 args.length<fn.length ? (...arguments) => curry(fn,...args,...arguments) : fn(...args)

封装好的柯里化函数我们可以直接拿来用,满足基本调用需求。