讲师中心 微信公众号
AI工具推荐 视频效率加速

javascript中的箭头函数有什么特点?【教程】

风涛吖_4679

风涛吖_4679

发布时间:2026-01-21 20:27:09

|

788人浏览过

|

来源于php中文网

原创

箭头函数无this、arguments、super、new.target,不绑定this而继承词法作用域,不能作对象方法或事件回调,不可用call/apply/bind修改this,无prototype,不能new调用,无arguments对象,不可作Generator函数,适用纯计算与闭包场景。

javascript中的箭头函数有什么特点?【教程】

箭头函数不是普通函数的简写替代,它没有自己的 this、arguments、super 或 new.target,这是它最根本的特性,也是绝大多数问题的根源。

箭头函数不绑定 this,只继承外层作用域

它不会创建自己的执行上下文,this 值由定义时的词法作用域决定,而非调用时。这意味着:

  • 不能用作对象方法(this 不指向该对象)
  • 不能用作事件回调并期望 this 指向触发元素(如 button.addEventListener('click', () => console.log(this)) 中的 this 是外层的,不是 button)
  • 无法通过 .call()、.apply()、.bind() 改变 this

需要动态 this 时,必须用传统函数表达式或声明。

没有 arguments 对象,也不能用 new 调用

箭头函数体内访问 arguments 会报 ReferenceError,因为它根本不生成这个类数组对象。同时:

Java Maven Code Review
Java Maven Code Review

审查Java Maven项目(ZIP压缩包或GitLab仓库URL),检查代码规范、命名、模块边界、可维护性问题以及重复代码。

下载

立即学习“Java免费学习笔记(深入)”;

  • 没有 prototype 属性(typeof (() => {}) === 'function' 但 (() => {}).prototype 是 undefined)
  • 直接 new (() => {}) 会抛出 TypeError: xxx is not a constructor
  • 想取参数只能用剩余参数 (...args) => {...}

单参数、单表达式可省略括号和花括号,但有陷阱

语法糖确实简洁,但容易误判返回值:

  • x => x * 2 → 返回数值
  • x => { x * 2 } → 返回 undefined(花括号被解析为函数体,不是对象字面量)
  • x => ({ value: x }) → 正确返回对象(圆括号强制将花括号识别为表达式)
  • 带默认参数或解构参数时,哪怕只有一个,也必须加括号:([a, b]) => a + b、(x = 1) => x

不能作为 Generator 函数,也不支持 yield

箭头函数没有 function 关键字,因此无法加 * 声明为 generator,内部写 yield 会直接语法错误。需要迭代逻辑时,只能用传统 function*。

真正要用好箭头函数,关键是克制——它适合纯计算、闭包捕获、回调中避免 this 失控,但一旦涉及动态上下文、构造实例或需要 arguments,就得立刻退回到普通函数。很多人踩坑,不是因为没记住规则,而是忘了自己到底需不需要那些被拿掉的东西。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

相关专题

更多
go语言闭包相关教程大全
go语言闭包相关教程大全

本专题整合了go语言闭包相关数据,阅读专题下面的文章了解更多相关内容。

3993

2025.07.29

console接口是干嘛的
console接口是干嘛的

console接口是一种用于在计算机命令行或浏览器开发工具中输出信息的工具,提供了一种简单的方式来记录和查看应用程序的输出结果和调试信息。本专题为大家提供console接口相关的各种文章、以及下载和课程。

816

2023.08.08

console.log是什么
console.log是什么

console.log 是 javascript 函数,用于在浏览器控制台中输出信息,便于调试和故障排除。想了解更多console.log的相关内容,可以阅读本专题下面的文章。

5883

2024.05.29

undefined是什么
undefined是什么

undefined是代表一个值或变量不存在或未定义的状态。它可以作为默认值来判断一个变量是否已经被赋值,也可以用于设置默认参数值。尽管在不同的编程语言中,undefined可能具有不同的含义和用法,但理解undefined的概念可以帮助我们更好地理解和编写程序。本专题为大家提供undefined相关的各种文章、以及下载和课程。

11685

2023.07.31

网页undefined是什么意思
网页undefined是什么意思

网页undefined是指页面出现了未知错误的意思,提示undefined一般是在开发网站的时候定义不正确或是转换不正确,或是找不到定义才会提示undefined未定义这个错误。想了解更多的相关内容,可以阅读本专题下面的文章。

5507

2024.08.14

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

2516

2025.12.25

function是什么
function是什么

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果。本专题为大家提供function是什么的相关的文章、下载、课程内容,供大家免费下载体验。

2900

2023.08.04

js函数function用法
js函数function用法

js函数function用法有:1、声明函数;2、调用函数;3、函数参数;4、函数返回值;5、匿名函数;6、函数作为参数;7、函数作用域;8、递归函数。本专题提供js函数function用法的相关文章内容,大家可以免费阅读。

494

2023.10.07

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

0

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12.1万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn