ES6高阶函数的应用示例
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要介绍ES6高阶函数的应用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!tab 函数// 此处tap函数接受一个 vaule 并返回一个包含value 闭包函数,
千家信息网最后更新 2025年11月16日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安全错误
数据库的锁怎样保障安全
网络安全喧传手纱报
中国人大复印资料数据库
阳江电信服务器
网络安全保护义务解读
服务器怎么管理每个用户
网络营销网络技术咨询一体化
网络安全技术王群题库
k8s 数据库源文件
db2数据库字段多大最好
安卓手动建立数据库连接
安全工程包含网络安全
excel存储到数据库中
俄乌事件对网络安全的影响
lol选择完英雄就卡在服务器
数据库数据从低到高排序
织梦数据库老是被卡住
qt电脑串口接收数据库
管线mdb格式数据库
实时答题软件开发流程
软件开发企业原材料
用友恢复数据库
网络技术的英文翻译
晚清和民国期刊全文数据库
优的企业系统软件开发
中兴数据库的中文名
关于网络安全的因素
郑州哪个软件开发公司好
华硕 服务器主板 开机跳线
我的世界服务器修理
sybase数据库打开表