千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  html5技术干货  >  正文

柯理化函数

来源:千锋教育
作者:qyf
关键词: 参数 函数
2023-01-16
分享

柯理化函数

  所谓的柯里化函数指的是:把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数//普通的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() 稍微慢点,创建大量嵌套作用域和闭包函数会带来花销,无论是在内存还是速度上

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

下一篇

相关推荐

  • 柯理化函数 所谓的柯里化函数指的是:把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数//普通的add函数 function add(x, y) { return x + y } // Currying后 function curryingA...
  • 谈一谈垃圾回收机制? 垃圾回收是动态存储管理技术,会自动地释放“垃圾‘’(不再被程序引用的对象),按照特定的垃圾收集算法来实现资源自动回收的功能。 回收的两种机制
  • 函数的节流和防抖? function thro(cb,wait){ let timeOut return function(){ if(timeOut) return timeOut = setTimeout(function(){ cb() clearTimeout(timeOut) ti...
  • null和undefined的区别? 典型用法是:- 变量被声明了,但没有赋值时,就等于undefined。- 调用函数时,应该提供的参数没有提供,该参数等于undefined。- 对象没有赋值的属性,该属性的值为undefined。- 函数没有返回值时,默认返回undefined。
  • 原生ajax的流程? open(Method, URL, Async, name, password)// 发送内容给服务器 xhr.send(内容) functionreadyStateChangeHandler(e) { // 当状态是4时,并且响应头成功200时, if (xhr.
  • 什么是事件轮询(EventLoop)? - 2、主线程发现有异步任务,如果是微任务就把他放到微任务的消息队列里,如果是宏任务就把他放到宏任务的消息队列里。- 3、执行栈所有同步任务执行完毕。- 4、执行微任务队列,之后再执行宏任务队列。