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 相关文章推荐
Javascript操纵Cookie实现购物车程序
Nov 23 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
Nov 01 Javascript
js string 转 int 注意的问题小结
Aug 15 Javascript
JavaScript中getUTCSeconds()方法的使用详解
Jun 11 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 Javascript
微信小程序 wx:for的使用实例详解
Apr 27 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
webpack dll打包重复问题优化的解决
Oct 10 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 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 中执行系统外部命令
2006/10/09 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
[02:16]完美世界DOTA2联赛PWL S3 集锦第三期
2020/12/21 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
新书发布会策划方案
2014/06/09 职场文书
土建工程师岗位职责
2014/06/10 职场文书
甲午风云观后感
2015/06/02 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
Redis分布式锁的7种实现
2022/04/01 Redis
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers