ES6 箭头函数

news/2025/10/19 16:07:10/文章来源:https://www.cnblogs.com/ifheiooo/p/19150972

引言
ES6 箭头函数(=>)彻底改变了 JavaScript 的编码风格,提供简洁语法和词法作用域绑定。但不当使用可能引发意外行为,本文将揭示其核心特性和避坑指南。


1. 词法绑定 this:告别 bind

箭头函数继承外层 this,解决回调函数 this 丢失问题:

class Timer {constructor() {this.seconds = 0;// 传统函数需额外绑定 this// setInterval(function() { this.seconds++ }.bind(this), 1000);// 箭头函数自动绑定setInterval(() => this.seconds++, 1000); }
}
 
 

2. 隐式返回值:单行代码优化

省略 return 简化函数书写:

// 传统写法
const squares = [1,2,3].map(function(n) {return n * n; 
});// 箭头函数简化
const squares = [1,2,3].map(n => n * n);
 
 

3. 慎用场景:避免误入歧途

不适用以下场景:

// ❌ 对象方法(this 指向错误)
const person = {name: "Alice",greet: () => console.log(`Hi, ${this.name}`) // this.name = undefined
};// ❌ 原型方法(同上)
Person.prototype.greet = () => {/* this 错误 */ };// ❌ 动态上下文(如 DOM 事件)
button.addEventListener('click', () => {console.log(this); // 指向 window 而非 button
});
 
 

4. 无 arguments 对象:替代方案

需用剩余参数(...args)替代:

const logArgs = (...args) => console.log(args);
logArgs(1, 2); // 输出 [1, 2]
 
 

结语
箭头函数虽简洁,但需牢记:

  • 优先用于匿名回调、map/filter 等短函数
  • 避免在对象方法/构造函数中使用
  • 动态 this 场景改用普通函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/940402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos 7.9快速部署ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统用于信息收集

github项目地址:https://github.com/honmashironeko/ARL-docker #感谢项目作者做出的贡献如果git下载不了,下载zip包 通过网盘分享的文件:ARL-docker-main.zip 链接: https://pan.baidu.com/s/1lF3EBWCkJHjW0P9Irf…

3 分钟搞懂 Java 中 this 关键字的用法

Java 里 this 常被初学者忽略,其实就两个核心作用:一是区分成员变量和局部变量,比如构造方法中this.name = name,避免变量名冲突;二是调用本类其他构造方法,用this(参数)在构造方法首行调用,减少重复代码。​ 示…

折腾笔记[32]-windows部署vscode-server及使用命令行编译c#.net工程

工控机windows双击exe一键运行vscode-server及使用命令行编译c#.net工程.摘要 工控机windows双击exe一键运行vscode-server及使用命令行编译c#.net工程. 1. 一键运行code-server 下载地址:[https://gitee.com/David-Co…

Java 中 ArrayList 和 LinkedList 的选择技巧

日常开发选集合常纠结,记住两个关键场景:​ 若频繁做 “查询”(比如get(index)),选 ArrayList,底层数组支持随机访问,速度快;若频繁做 “增删”(尤其是中间位置),选 LinkedList,底层链表只需改指针,不用像…

Java 静态方法为什么不能访问非静态成员?

很多人疑惑静态方法里调非静态变量会报错,核心原因是 “加载时机不同”:静态成员(方法 / 变量)在类加载时就初始化,属于 “类级别的资源”;非静态成员要等创建对象后才存在,属于 “对象级别的资源”。​ 就像没…

ES6 箭头函数:告别 `this` 的困扰

ES6 箭头函数:告别 this 的困扰 引言ES6 箭头函数(=>)不仅是语法糖,更解决了 JavaScript 中 this 绑定的核心痛点。本文将揭示其四大实战价值,助你写出更简洁可靠的代码。1. 极简语法:告别 function 冗余 单参…

2025润滑油厂家推荐:三特石化全合成长效发动机油,品质卓越!

2025润滑油厂家推荐:三特石化全合成长效发动机油,品质卓越!随着工业和汽车行业的快速发展,对润滑油的需求不断增加。润滑油作为机械设备运行的重要保障,其质量和性能直接影响到设备的使用寿命和工作效率。本文将深…

Java 类与对象实践:从代码验证到四则运算开发

Java类与对象实践:从代码验证到四则运算开发 在学习Java类与对象后,通过代码验证课件知识点、完成四则运算开发,能更深入理解面向对象编程思想。以下是我在实践过程中的详细记录,包含知识点验证、问题解决及项目开…

2025手持光谱仪厂家推荐:一诺机电精准分析,便携高效检测首选!

2025手持光谱仪厂家推荐:一诺机电精准分析,便携高效检测首选!随着科技的不断进步,手持光谱仪/光谱分析仪/便携式光谱仪在矿石/元素分析、合金/金属/不锈钢/铝合金、贵金属、三元催化等领域的应用越来越广泛。然而,…

HTML5中常用的布局语义标签

块元素(block element)在页面中,块元素独占一行; 在网页中一般通过块元素来对页面进行布局。 块元素中可以放块元素和行内元素。 行内元素(inline element)在页面中,行内元素不能独占一行;行内元素主要用来包裹…

Jupyter直接转pdf

需要安装Jupyter nbconvert 中文 PDF 模板(github地址 https://github.com/AllanChain/nb-tmpl-ctex,点个免费的星星吧) Chinese LaTeX/PDF template for Jupyter notebook nbconvert using CTeX. 安装 pip install…

DP优化:四边形不等式、决策单调性与凸性

考虑 \(a\leq b\leq c\leq d\) 最小化问题中,四边形不等式为 \(w(a,c)+w(b,d)\leq w(a,d)+w(b,c)\)。 最大化问题中,四边形不等式为 \(w(a,c)+w(b,d)\geq w(a,d)+w(b,c)\)。 交叉优于包含。 文中默认讨论最小化问题。…

智慧交通项目:Python+PySide6 车辆检测框架 YOLOv8+OpenCV 自定义视频 自定义检测区域 (源码+文档)✅

智慧交通项目:Python+PySide6 车辆检测框架 YOLOv8+OpenCV 自定义视频 自定义检测区域 (源码+文档)✅pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

WPS中Mathtype插件消失不见解决方法

本文解决WPS顶栏Mathtype插件使用一段时间后会消失不见的问题。 方案一:按照上述操作,出现如下方框点击模板,会出现Mathtype相关插件,按照下图示操作最后,重新启动WPS,即可看到顶栏会出现Mathtype选项。 方案二:…

list 实现链表封装节点的底层逻辑:如何克服不连续无法正常访问挑战 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025气泡膜机优质厂家推荐:瑞康机械,高效生产与定制服务兼备!

2025气泡膜机优质厂家推荐:瑞康机械,高效生产与定制服务兼备!随着电子商务和物流行业的迅猛发展,包装材料的需求量也在不断增加。气泡膜作为一种重要的缓冲包装材料,其生产设备——气泡膜机/气泡膜制袋机/高速气泡…

音视频编解码全流程之用Extractor后Decodec - 实践

音视频编解码全流程之用Extractor后Decodec - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

P8817 [CSP-S 2022] 假期计划 解题笔记

给一个不用dp的做法 solution 考虑朴素做法。 预处理出 \(f(x)\),表示距离 \(x\) 不超过 \(k\) 的点。 枚举每个景点 \(a\), \(b\), \(c\), \(d\),通过预处理出的 \(f(x)\) 计算是否合法,更新答案。 这样时间复杂度…

2025年塑料托盘厂家推荐排行榜,网格川字/九脚/田字/双面塑料托盘,平板/吹塑/注塑/焊接/印刷/组装款/高矮脚/反川字/立体库托盘公司精选!

2025年塑料托盘厂家推荐排行榜:网格川字/九脚/田字/双面塑料托盘,平板/吹塑/注塑/焊接/印刷/组装款/高矮脚/反川字/立体库托盘公司精选!随着物流和仓储行业的快速发展,塑料托盘作为重要的物流工具,其需求量逐年增…

20243866牛蕴韬类和对象作业

https://files.cnblogs.com/files/blogs/847621/20243866牛蕴韬类和对象作业.zip?t=1760859411&download=true