js函数柯里化的方法和作用实例分析


Posted in Javascript onApril 11, 2020

本文实例讲述了js函数柯里化的方法和作用。分享给大家供大家参考,具体如下:

函数柯里化的方法:

1,利用数组的reduce方法可实现柯里化,具体参见我的另外一篇文章

2,代码如下

const curry = (fn, ...args) =>{
   console.log('args',args)
  // console.log(fn.length,args.length)
  return args.length < fn.length
  // 参数长度不足时,重新柯里化该函数,等待接受新参数
  ? (...arguments) => {
    console.log('arguments',arguments)
    return curry(fn, ...args, ...arguments)
  }
  // 参数长度满足时,执行函数
  : fn(...args);
}
function sumFn(a, b, c) {
  return a + b + c;
}
var sum = curry(sumFn); 
const one = sum(2)
console.log('one:',one.toString())
const two = one(3)
console.log('two:',two.toString())
const three = two(5)
console.log('three:',three.toString())
 
//console.log(sum(2)(3)(5));//10
// console.log(sum(2, 3, 5));//10
// console.log(sum(2)(3, 5));//10
// console.log(sum(2, 3)(5));//10

js函数柯里化的方法和作用实例分析

函数柯里化的主要作用:

  • 参数复用。
  • 提前返回 ? 返回  接受余下的参数  且返回结果  的  新函数。
  • 延迟执行 ? 返回新函数,等待执行。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery对表单的操作代码集合
Apr 06 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
Jul 01 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
Nov 16 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 Javascript
JavaScript常用工具函数大全
May 06 Javascript
关于Vue Router的10条高级技巧总结
May 06 Vue.js
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 #Javascript
JavaScript运行机制实例分析
Apr 11 #Javascript
js中调用微信的扫描二维码功能的实现代码
Apr 11 #Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
Apr 11 #Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 #Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
Apr 11 #Javascript
vue使用微信扫一扫功能的实现代码
Apr 11 #Javascript
You might like
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
使用php判断网页是否gzip压缩
2013/06/25 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
python数据处理实战(必看篇)
2017/06/11 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
生态学毕业生自荐信
2013/10/27 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
后备干部培训方案
2014/05/22 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js