JavaScript箭头函数是什么_它和普通函数有哪些区别
发布时间 - 2025-12-25 00:00:00 点击率:次箭头函数是ES6引入的简洁函数语法,词法绑定this、不可作为构造函数、无arguments对象,适用于需稳定this和简短逻辑的场景,但不适用于需动态this或实例化的场合。
箭头函数是 ES6 引入的一种简洁的函数定义语法,它没有自己的 this、arguments、super 或 new.target,也不可以作为构造函数使用。它最核心的特点是**词法绑定 this**,也就是说它的 this 值由定义时的外层作用域决定,而不是调用时的上下文。
箭头函数没有独立的 this
普通函数的 this 取决于调用方式(如对象方法调用、call/apply、事件回调等),而箭头函数不绑定自己的 this,直接继承外层作用域的 this 值。
- 在对象方法中使用普通函数,
this指向该对象;但若用箭头函数,则this指向外层(比如全局或外层函数) - 在事件监听器或定时器中,普通函数容易丢失
this,常需b;箭头函数天然避免这个问题
ind - React 类组件中,类方法常用箭头函数写法(如
handleClick = () => {}),就是为了保持对组件实例的正确引用
箭头函数不能用作构造函数
箭头函数没有 prototype 属性,也没有 [[Construct]] 内部方法,因此无法通过 new 调用。
-
const fn = () => {}; new fn();会抛出TypeError: fn is not a constructor - 需要实例化对象时,必须使用普通函数或 class
箭头函数没有 arguments 对象
箭头函数内部访问 arguments 会沿作用域链向上查找,拿到的是外层函数的 arguments,不是自身参数列表。
- 想获取参数时,应使用剩余参数(
...args)替代arguments - 例如:
const sum = (...nums) => nums.reduce((a, b) => a + b, 0);
语法更简洁,但适用场景有限
箭头函数省略 function 关键字、return(单表达式时)和花括号(单参数且单语句时),适合写简短逻辑。
- 单参数可省括号:
x => x * 2 - 单表达式自动返回:
arr.map(x => x ** 2) - 但多语句必须加花括号和显式
return:x => { console.log(x); return x + 1; } - 不适合需要动态
this、构造实例、重写arguments的场景
本质上,箭头函数不是普通函数的“升级版”,而是为特定需求设计的替代语法——它牺牲了灵活性,换来了更可预测的 this 和更紧凑的写法。选哪个,取决于你是否需要 this 绑定、是否要 new 实例、是否在回调中依赖词法作用域。
# react
# javascript
# es6
# java
# app
# 区别
# 作用域
# red
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
javascript基本数据类型及类型检测常用方法小结
怎样使用JSON进行数据交换_它有什么限制
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Android自定义listview布局实现上拉加载下拉刷新功能
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
lovemo网页版地址 lovemo官网手机登录
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何为不同团队 ID 动态生成多个独立按钮
android nfc常用标签读取总结
详解Android——蓝牙技术 带你实现终端间数据传输
BootStrap整体框架之基础布局组件
高防服务器:AI智能防御DDoS攻击与数据安全保障
使用豆包 AI 辅助进行简单网页 HTML 结构设计
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Laravel模型事件有哪些_Laravel Model Event生命周期详解
如何快速搭建高效WAP手机网站吸引移动用户?
高防服务器租用如何选择配置与防御等级?
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何在宝塔面板创建新站点?
微信小程序 scroll-view组件实现列表页实例代码
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
EditPlus中的正则表达式 实战(1)
Internet Explorer官网直接进入 IE浏览器在线体验版网址
Android GridView 滑动条设置一直显示状态(推荐)
使用C语言编写圣诞表白程序
,在苏州找工作,上哪个网站比较好?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Firefox Developer Edition开发者版本入口
如何快速搭建FTP站点实现文件共享?
如何用已有域名快速搭建网站?
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel如何处理和验证JSON类型的数据库字段
Swift中switch语句区间和元组模式匹配
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Laravel如何使用Vite进行前端资源打包?(配置示例)
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
JavaScript常见的五种数组去重的方式
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
如何挑选高效建站主机与优质域名?
深圳网站制作的公司有哪些,dido官方网站?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】


ind