[Javascript] Compose multiple functions for new behavior in JavaScript
JavaScript for in New Compose multiple Functions Behavior
2023-09-14 09:00:51 时间
In this lesson you will create a utility function that allows you to quickly compose behavior of multiple functions to create new behavior. By the end, you will have successfully created a tremendously popular helper function that is used in JavaScript libraries ranging from Redux to Ramda.
const startVal = 4; const squared = x => x * x; const doubled = x => x * 2; const addTen = x => x + 10; const halfNum = x => x / 2; const result = halfNum(addTen(doubled(squared(startVal))));
The code above is not good enough. We can use 'compose' function instead of nested functions call together.
Write 'compose' function:
const compose = (...fns) => initialVal => fns.reduceRight((val, fn) => fn(val), initialVal)
Now we can optimizte the code:
const result = compose(
halfNum,
addTen,
doubled,
squared
)(startVal);
const compose = (...fns) => (...args) => fns.reduceRight((res, fn) => [fn.call(null, ...res)], args)[0];
相关文章
- 细说JavaScript对象(4): for in 循环
- Win10系列:JavaScript动画2
- 第一百二十五节,JavaScript,XML
- JavaScript经典代码【一】【javascript HTML控件获取值】
- JavaScript 消息框,警告框,确认框,提示框
- [Javascript] Objects and Functions
- [Cypress] install, configure, and script Cypress for JavaScript web applications -- part5
- [Javascript] Use JavaScript's for-in Loop on Objects with Prototypes
- [Javascript Crocks] Safely Access Object Properties with `prop`
- [React Flow] Up and Running with Facebook Flow for Typed JavaScript
- [Javascript] Using JSHint for Linting with Gulp
- 使用 Babel 将基于 ES6 的 SAP UI5 的代码转译成传统 JavaScript 代码
- jQWidgets 15.0 for JavaScript Crack
- lzugis——Arcgis Server for JavaScript API之自己定义InfoWindow
- JavaScript基础&实战(3)js中的流程控制语句、条件分支语句、for循环、while循环
- JavaScript资源大全中文版(Awesome最新版)
- QCSPCChart 3.6.8:SPC Control Chart for JavaScript
- MindFusion.Diagramming for JavaScript V4.2.3
- MindFusion.Diagramming for JavaScript V4.2.4