ES6高阶函数的应用示例
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍ES6高阶函数的应用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!tab 函数// 此处tap函数接受一个 vaule 并返回一个包含value 闭包函数,
千家信息网最后更新 2026年11月04日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安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网电商科技
美国互联网科技
有马互联网科技
紫鲸互联网科技
互联网科技媒体
苏州互联网科技贷款公司
天下捷融互联网科技
掌上梦互联网科技
亿人帮互联网科技
济南和联互联网科技有限公司
互联网实体化科技化
成都铂石互联网科技做什么的
广州市恰铎互联网科技有限公司
洛阳昕诺飞互联网科技有限公司
广州新华互联网科技学校电竞方面
上海乐五互联网科技有限公司
济南小医互联网科技有限公司招聘
平安好医生打造互联网科技医疗
颐高云石互联网科技
疫情对互联网科技公司影响
中国互联网科技发展
广州互联网络科技有限公司
融贸通互联网科技
互联网实体化科技化
隆华科技工业互联网
智帮互联网科技公司最近动向
21世纪互联网科技成就
风投北京互联网科技
济南小医互联网科技有限公司招聘