JavaScript 新旧替换五:函数嵌套
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript 新旧替换五:函数嵌套,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1554字,纯文字阅读大概需要3分钟。
内容图文
![JavaScript 新旧替换五:函数嵌套](/upload/InfoBanner/zyjiaocheng/631/83424c3c719e4338a657acc0ca9de33c.jpg)
目录
引子
看了 Redux 的 applyMiddleware
方法的实现,里面函数嵌套的写法都用了新语法,就想关注一下函数嵌套一类新旧的不同。
上一篇 JavaScript 新旧替换四:继承。
ES5 方式
普通嵌套
function find(value) {
return {
in: function(arr) {
return {
combine: function(obj) {
var result = arr.indexOf(value);
obj.index = result;
return obj;
}
};
}
};
}
var data = find(6).in([1,2,3,4,5,6]).combine({});
console.info(data); // {index: 5}
管道机制
管道机制(pipeline)是指前一个函数的输出是后一个函数的输入。
const plus = a => a + 1;
const minus = a => a - 2;
const multi = a => a * 3;
const div = a => a / 4;
function pipeline() {
for (var len = arguments.length, funcs = [], key = 0; key < len; key++) {
funcs[key] = arguments[key];
}
return function(val) {
var result = funcs.reduce(function(a, b) {
return b(a);
}, val);
return result;
};
}
var cal = pipeline(plus,minus,multi,div);
var result = cal(5);
console.info(result); // 3
ES2015+ 方式
普通嵌套
const find = (value) => (
{
in: (arr) => (
{
combine: (obj) => {
const result = arr.indexOf(value);
obj.index = result;
return obj;
}
}
)
}
);
const data = find2(6).in([1,2,3,4,5,6]).combine({});
console.info(data); // {index: 5}
管道机制
const plus = a => a + 1;
const minus = a => a - 2;
const multi = a => a * 3;
const div = a => a / 4;
const pipeline = (...funcs) => val => funcs.reduce(function(a,b) {
return b(a);
}, val);
const cal = pipeline(plus,minus,multi,div);
const result = cal(5);
console.info(result); // 3
Back to top
参考资料
内容总结
以上是互联网集市为您收集整理的JavaScript 新旧替换五:函数嵌套全部内容,希望文章能够帮你解决JavaScript 新旧替换五:函数嵌套所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。