新闻中心

什么是J*aScript的箭头函数_它和普通函数有什么不同呢

2025-12-15
浏览次数:
返回列表
箭头函数是J*aScript中语法简洁的函数定义方式,与普通函数的关键区别在于:无独立this、不可作为构造函数、无arguments对象、无new.target和super。

什么是javascript的箭头函数_它和普通函数有什么不同呢

箭头函数是 J*aScript 中定义函数的一种简洁写法,用 => 符号代替 function 关键字。它不只是语法糖,和普通函数在行为上有几个关键区别。

箭头函数没有自己的 this

普通函数的 this 取决于调用方式(比如对象方法、独立调用、call/apply 等),而箭头函数不绑定自己的 this,它会沿作用域链向上找外层普通函数的 this 值。

这在事件回调、定时器或 Promise 链中特别有用——避免手动 .bind(this) 或写 const self = this

  • 普通函数:obj.method()this 指向 obj;但 setTimeout(obj.method, 100)this 通常变成 windowundefined(严格模式)
  • 箭头函数:setTimeout(() => this.doSomething(), 100)this 保持外层上下文,不用额外处理

箭头函数不能作为构造函数

它没有 prototype 属性,也不支持 new 调用。试图用 new 调用箭头函数会直接报错。

AI Code Reviewer AI Code Reviewer

AI自动审核代码

AI Code Reviewer 112 查看详情 AI Code Reviewer
  • 普通函数:function Person(name) { this.name = name; } → 可以 new Person('Alice')
  • 箭头函数:const Person = (name) => { this.name = name; }new Person('Alice') 报错 TypeError: Person is not a constructor

箭头函数没有 arguments 对象

它不绑定 arguments,但可以用剩余参数 ...args 替代。

  • 普通函数内可直接访问 arguments 类数组对象
  • 箭头函数里访问 arguments 会报错或取到外层函数的 arguments(如果存在)
  • 推荐写法:(...nums) => nums.reduce((a, b) => a + b)

箭头函数没有 new.target 和 super

它不能用在类的方法定义中替代 constructor,也不能在子类箭头函数里访问 super —— 因为它根本不是“方法”,也没有原型继承语义。

  • 类中定义方法必须用普通函数语法(包括简写的 method() {}
  • constructor() {} 必须是普通函数,不能写成 constructor = () => {}

基本上就这些。箭头函数适合写简短的回调、逻辑表达式,或需要稳定 this 的场景;但需要动态 this、构造实例、访问 arguments 或参与继承时,就得用普通函数。

以上就是什么是J*aScript的箭头函数_它和普通函数有什么不同呢的详细内容,更多请关注其它相关文章!


# java  # app  # win  # 区别  # javascript  # 遍历  # 推荐的网站建设价格  # 提升seo规则采集  # 谷歌网站推广工作好做吗  # 长春手机网站优化  # 安国seo整站优化  # 淮安短视频营销策划推广  # 绑定  # 用它  # 它不  # 有什么不同  # 也不  # 报错  # 自己的  # 如何用  # 子类  # red  # 作用域  # 泊头购物网站建设  # 闽侯网页seo排名  # 顺德360营销推广公司  # 卖家网站怎么做推广的 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Angular响应式表单:实现提交后表单及按钮的禁用与只读化  印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】  FullCalendar 自定义按钮样式定制指南  PHP 枚举:根据字符串获取枚举案例的策略与实现  学习通在线学习平台 学习通网页版直接进入课程中心  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别  海棠账号登录入口_登录海棠账户同步阅读记录  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  抖音网页版快捷访问 抖音网页版网页版入口操作教程  《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情  如何使用Node.js csv 包按条件移除含空字段的CSV记录  文本文档写html代码怎么运行_文本文档html代码运行步骤【教程】  Win10怎么制作U盘启动盘 Win10系统安装U盘制作教程【详解】  网站内容防复制粘贴的实现策略与局限性  汽水音乐在线版入口_汽水音乐网页播放手册  J*a应用集成GitHub CLI与API认证指南  小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口  在J*a中如何使用Exception包装底层异常_异常包装与信息传递方法说明  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  妖精动漫免费平台 妖精动漫官网资源观看网址  黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】  Win11如何使用Windows Sandbox Win11沙盒功能开启与使用教程【详解】  Python多版本共存与虚拟环境管理深度指南  使用J*aScript检测输入元素是否包含在特定类中  AO3最新入口2025公告_AO3中文官网合集  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  如何使用Go和Martini动态服务解码后的图片  TypeScript/J*aScript:高效查找数组中首个唯一ID对象  Lar*el Excel导入时生成自定义递增ID的策略与实践  字由网在线版登录地址 字由网网页版安全入口  Win10系统服务哪些可以禁用 Win10安全优化服务列表【干货】  sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统  解决 MongoDB 聚合查询中对象数组 _id 匹配问题  Shopware订单对象中获取产品自定义字段的正确方法  Golang如何使用const iota_Go iota常量计数器讲解  Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法  新手怎么开始学化妆 零基础化妆入门教程  Win10双系统截图高效法 截屏快捷键速记【技巧】  抖音极速版最新版本 抖音极速版官方下载地址  Python中高效访问嵌套字典与列表中的键值对  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法  漫蛙漫画登录站点 漫蛙2正版漫画快速访问  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE  “在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法  树莓派传感器触发:通过Twilio API发送WhatsApp消息教程  微信聊天记录怎么加密_微信聊天记录加密方法  中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】 

搜索