千锋教育-做有情怀、有良心、有品质的职业教育机构
所谓的柯里化函数指的是:把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数//普通的add函数 function add(x, y) { return x + y } // Currying后 function curryingAdd(x) { return function (y) { return x + y } } add(1, 2) // 3 curryingAdd(1)(2) // 3 优点:
1, 参数复用 例如 一个函数 有两个参数 但是第一个参数会被反复使用 每次都需要输入 一个重复的参数 使用柯里化函数之后,只需要输入一个参数就可以了
2, 提前确认 提前定义好一个参数 也就 决定了整个函数程序的执行方向 避免每次都执行判断比较等 缺点: 只能提前定义一个参数 如果想要提前定义多个参数 这样的语法是不支持 柯里化函数执行效能上的问题: 存取arguments对象通常要比存取命名参数要慢一点 一些老版本的浏览器在arguments.length的实现上是相当慢的,使用函数.apply() 和 函数.call() 通常比直接调用 fn() 稍微慢点,创建大量嵌套作用域和闭包函数会带来花销,无论是在内存还是速度上
上一篇
谈一谈垃圾回收机制?下一篇
数组扁平化相关推荐