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 相关文章推荐
一个用js实现控制台控件的代码
Sep 04 Javascript
JavaScript 类似flash效果的立体图片浏览器
Feb 08 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
Apr 15 Javascript
jquery插件jquery倒计时插件分享
Dec 27 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
Apr 03 Javascript
详解百度百科目录导航树小插件
Jan 08 Javascript
jQuery插件扩展操作入门示例
Jan 16 Javascript
基于JQuery的购物车添加删除以及结算功能示例
Mar 08 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
微信小程序图片左右摆动效果详解
Jul 13 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向js函数传参的几种方法
2014/08/10 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
Python 求数组局部最大值的实例
2019/11/26 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
python中rb含义理解
2020/06/18 Python
购买一个高级域名:BuyDomains
2018/03/11 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
应届生护士求职信
2013/11/01 职场文书
行政助理的岗位职责
2014/02/18 职场文书
小学教学随笔感言
2014/02/26 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
卫生系统先进事迹
2014/05/13 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
五四演讲稿范文
2014/09/03 职场文书
学习党史心得体会2016
2016/01/23 职场文书
教师个人教学反思
2016/02/23 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python