本文摘自PHP中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于JavaScript函数式编程中代码组合(compose)的理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。函数式编程中代码组合(compose)如何理解?
定义: 顾名思义,在函数式编程中,Compose就是将几个有特点的函数拼凑在一起, 让它们结合, 产生一个崭新的函数
代码理解:
1 2 3 4 5 6 7 8 9 10 |
|
pointfree
代码组合中有一个重要的概念pointfree(永远不要说出你的数据), 它的意思是指函数无须提及将要操作的数据是什么样的
有点晦涩,我们还是上代码理解一下
1 2 3 4 5 6 7 |
|
说了这么多,他能干什么呢 ? 它能够帮助我们减少不必要的命名,让代码保持简洁和通用
compose实现
上面我们都是假设已经存在compose方法, 接下来我们来为其实现
首先分析其特性
- 两个函数都有一个共同的参数
- 函数的执行顺序从右至左
- 前面函数执行的结果交由后面的函数处理
根据上面的示例及我们分析的特性来实现一个最简版的
1 2 3 4 5 6 |
|
结束了吗? 并没有,我们可以看到上面的compose示例都只是传入了两个函数,因为我们的简版compose实现也只支持两个函数,那么如果我们想要支持一条很长很长的管道的时候,显然上面的compose就不够用了, 接着我们来看优秀的开源库redux的compose实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
总结
将多个单特性的函数组合到一起的函数
多个函数服务一组数据(共同参数)
不必说出数据(pointfree)
函数从右至左顺序执行,结果做为下一个函数的参数
本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的JavaScript教程视频栏目!
以上就是JavaScript函数式编程中代码组合(compose)的理解的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
javascript深度优先遍历(dfs)和广度优先遍历(bfs)算法的介绍
更多相关阅读请进入《javascript》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者