是什么
柯里化,英文叫做Currying,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数。 下面写一个例子来简单了解一下。
上面代码就是add函数的x,y两个参数变成了先用一个函数接收x然后返回一个函数去处理y参数。就是只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。
多个参数
下面来了解一下curry的性能问题吧!
- 存取arguments对象要比存取命名参数慢一点
- 一些老版本的浏览器在arguments.length实现上很慢
- 使用fn.apply()和fn.call()通常要比直接调用fn()慢点
- 创建大量嵌套作用和闭包函数会产生消耗,无论在内存还是在速度上