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 相关文章推荐
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
Jan 06 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
Aug 07 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
Dec 18 Javascript
JS实现拖动滚动条评分的效果代码分享
Sep 29 Javascript
JS实现AES加密并与PHP互通的方法分析
Apr 19 Javascript
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
Mar 13 Javascript
Vue加载json文件的方法简单示例
Jan 28 Javascript
json数据格式常见操作示例
Jun 13 Javascript
js页面加载后执行的几种方式小结
Jan 30 Javascript
微信小程序自定义扫码功能界面的实现代码
Jul 02 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基于协程实现异步的方法分析
2019/07/17 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python数据库的连接实现方法与注意事项
2016/02/27 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
心理健康课教学反思
2014/02/13 职场文书
团购业务员岗位职责
2014/03/15 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
晚会闭幕词
2015/01/28 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
初中军训感想
2015/08/07 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
vue使用element-ui按需引入
2022/05/20 Vue.js