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 选择器、DOM操作、事件、动画
Nov 25 Javascript
基于jQuery中对数组进行操作的方法
Apr 16 Javascript
JavaScript设置首页和收藏页面的小例子
Nov 11 Javascript
无刷新上传文件并返回自定义值
Jun 11 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
理解jquery事件冒泡
Jan 03 Javascript
js select实现省市区联动选择
Apr 17 Javascript
详解jQuery的表单验证插件--Validation
Dec 21 Javascript
Web纯前端“旭日图”实现元素周期表
Mar 10 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
Oct 20 Javascript
Vue SPA单页应用首屏优化实践
Jun 28 Javascript
vue组件暴露和.js文件暴露接口操作
Aug 11 Javascript
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
PHP伪静态页面函数附使用方法
2008/06/20 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
thinkPHP框架实现的简单计算器示例
2018/12/07 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
javascript实现图片切换的幻灯片效果源代码
2012/12/12 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
小学教师的自我评价范例
2013/10/31 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
python如何利用traceback获取详细的异常信息
2021/06/05 Python
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python
spring boot中nativeQuery的用法
2021/07/26 Java/Android