ES6高阶函数的应用示例
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章主要介绍ES6高阶函数的应用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!tab 函数// 此处tap函数接受一个 vaule 并返回一个包含value 闭包函数,
千家信息网最后更新 2025年02月08日ES6高阶函数的应用示例
这篇文章主要介绍ES6高阶函数的应用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
tab 函数
// 此处tap函数接受一个 vaule 并返回一个包含value 闭包函数,该函数被执行const tap = (value) => (fn) => ( typeof(fn) === 'function' && fn(value), console.log(value))
tab函数用处:假设你在遍历一个来自服务器的数组,并发现数据错了,因此你想调试一下,看看数组包含了什么,就可以用 tab函数
[1, 2 ,3, 4].forEach((a) => { tap(a)((a)=> { console.log(a) })});#### 2) once 函数
在很多情况下,我们只需要运行一次给定的函数,发起一次银行支付请求等,这时就可以用到 once 函数。
const once = (fn) => { let done = false; return function () { return done?undefined:((done=true),fn.apply(this,arguments)) }}const doPayment = once(()=>{ console.log('payment is done')})doPayment(); // payment is doneconsole.log(doPayment()); //undefined#### 3) 函数柯里化的应用
开发者编写代码的时候应用的不同阶级编写很多日志,我们可以编写一个如下的日志函数:
const loggerHelper = (mode, initialMessage, errorMessage, lineNo) => { if (mode === 'DEBUG') { console.debug(initialMessage,errorMessage + 'at line:' + lineNo) } else if (mode === 'ERROR') { console.error(initialMessage,errorMessage + 'at line:' + lineNo) } else if (mode === 'WARN') { console.warn(initialMessage,errorMessage + 'at line:' + lineNo) } else throw "Wrong mode"}
当开发者需要向控制台打印Stats.js文件中的错误时,可以用如下方式:
loggerHelper("ERROR", "ERROR At Stats.js", "Invalid argument passed", 23);
这样对于 我们追求完美可读的程序员来说,可能是不太能接受的,现在用柯里来优化以上代码,
先简要说明什么是函数柯里化:
柯里化是把一个多参数函数转换成一个嵌套的一元函数过程。
封装一个把把多参数函数转制为一元函数的curry函数
let curry = (fn) => { if (typeof fn !== 'function') { throw Error('No function provided'); } return function curriedFn(...args) { // 传入参数是否小于函数参数列表长度, if (args.length < fn.length) { return function() { return curriedFn.apply(null, args.concat([].slice.call(arguments))); } } return fn.apply(null, args) }} let errorLogger = curry(loggerHelper)("ERROR")("ERROR At Stats.js");let debugLogger = curry(loggerHelper)("DEBUG")("ERROR")("Debug At Stats.js");let warnLogger = curry(loggerHelper)("WARN")("Warn")("At Stats.js");// 用于错误errorLogger("Error message", 21)// 用于调试debugLogger('Debug message', 233)// 用于警告warnLogger("Warn message", 34);
以上是"ES6高阶函数的应用示例"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
函数
应用
参数
柯里
示例
高阶
代码
内容
开发者
数组
日志
篇文章
错误
开发
不同
把把
价值
兴趣
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术热门的研究
深圳市小狼标网络技术
大型软件开发困难及原因
网络安全绘画小人
数据库错误号1062
svn服务器管理成本
阿里数据库开发语言
统一服务器安全管理系统
阿里云服务器带宽跑满
计算机网络技术课程有哪些
三级网络技术没有视频教程
普陀区服务软件开发管理
国家网络安全周是哪一天
java数据库添加字段
欧瑞思丹网络技术公司
网络安全检查宣传语
2021幼儿园网络安全宣传周
甘肃曙光服务器维修维保哪家便宜
mysql数据库取天函数
asp连数据库源码
科技是互联网板块吗
杭州泰润互联网科技有限公司
点餐系统数据库设计含源代码
服务器配置与管理设计题
网络安全作业教育平台南阳市
什么叫网络技术公司
金银湖航空港互联网科技园
数据库授予角色更新权
要学计算机软件开发具备什么条件
重庆管理软件开发公司排名