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

如何学习JavaScript中的ES6新特性_JavaScript的箭头函数和普通函数有何不同

云晨姑娘_9874

云晨姑娘_9874

发布时间:2026-01-10 20:25:06

|

488人浏览过

|

来源于php中文网

原创

箭头函数不是语法糖,它没有自己的this、arguments、super、new.target,不能作为构造函数,this绑定定义时外层作用域,无法通过call/apply/bind修改,不支持yield和arguments对象,必须用剩余参数替代,返回对象需加小括号。

如何学习javascript中的es6新特性_javascript的箭头函数和普通函数有何不同

箭头函数不是普通函数的语法糖,它没有自己的 this、arguments、super 或 new.target,也不能用作构造函数——这是最常被忽略的本质区别。

箭头函数的 this 永远绑定定义时的外层作用域

普通函数的 this 取决于调用方式(如 obj.fn() 中 this 是 obj),而箭头函数的 this 在声明时就固定了,无法通过 .call()、.apply() 或 .bind() 修改。

常见错误现象:

  • 在事件回调或定时器中用箭头函数试图访问实例属性,结果 this 指向外层(比如全局或模块顶层)
  • 把箭头函数赋给对象方法,误以为 this 会指向该对象
const obj = {
  name: 'Alice',
  regularFn() {
    console.log(this.name); // 'Alice'
  },
  arrowFn: () => {
    console.log(this.name); // undefined(this 指向外层作用域,非 obj)
  }
};

箭头函数不能用 new 调用,也没有 prototype

因为箭头函数没有 [[Construct]] 内部方法,尝试 new (() => {}) 会直接抛出 TypeError: xxx is not a constructor。

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

使用场景判断:

java-api-doc-generator
java-api-doc-generator

分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。

下载
  • 需要创建实例对象?必须用普通函数(或 class)
  • 只是封装一段逻辑用于回调?箭头函数更安全(避免 this 混乱)
  • 要给函数挂载静态属性或方法?普通函数才有 prototype

箭头函数没有 arguments 对象,也不支持 yield

在箭头函数内部访问 arguments,实际读取的是外层普通函数的 arguments;如果外层也没有,就报 ReferenceError。ES6 推荐用剩余参数 ...args 替代。

另外,箭头函数不能用作 Generator 函数——它不支持 function* 语法,也不允许内部出现 yield 表达式。

function outer() {
  const arrow = () => console.log(arguments[0]); // 这里的 arguments 是 outer 的
  arrow('hello'); // 输出 'hello'
}
<p>// 错误写法:箭头函数里不能 yield
// const badGen = () => { yield 1; }; // SyntaxError

简写语法带来的隐式返回陷阱

单参数 + 单表达式可省略括号和 return,但一旦加了花括号 {},就必须显式写 return,否则返回 undefined。

容易踩的坑:

  • x => { x * 2 } 不返回值,等价于 x => { x * 2; return undefined; }
  • 想返回对象字面量?必须加小括号:x => ({ id: x }),否则会被解析为代码块
  • 嵌套箭头函数时,括号易漏,导致逻辑意外中断
// 正确:返回对象
const makeObj = x => ({ value: x });
<p>// 错误:{ value: x } 被当成了语句块,无返回
const broken = x => { value: x }; // 返回 undefined

真正要注意的不是语法多简洁,而是「哪些动态行为被彻底拿掉了」——this 绑定不可变、不能构造、没有 arguments,这些限制决定了它只适合特定角色:纯计算、回调、闭包内逻辑封装。混用或强行替代普通函数,迟早掉进隐性陷阱里。

热门AI工具

更多
豆包大模型

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

DeepSeek

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

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

WorkBuddy

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

Atoms
Atoms Hot

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

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

相关专题

更多
es6新特性
es6新特性

es6新特性有:1、块级作用域变量;2、箭头函数;3、模板字符串;4、解构赋值;5、默认参数;6、 扩展运算符;7、 类和继承;8、Promise。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

285

2023.07.17

es6新特性有哪些
es6新特性有哪些

es6的新特性有:1、块级作用域;2、箭头函数;3、解构赋值;4、默认参数;5、扩展运算符;6、模板字符串;7、类和模块;8、迭代器和生成器;9、Promise对象;10、模块化导入和导出等等。本专题为大家提供es6新特性的相关的文章、下载、课程内容,供大家免费下载体验。

406

2023.08.04

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

395

2025.12.24

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

4256

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

306

2025.12.06

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

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

4753

2025.07.29

undefined是什么
undefined是什么

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

12145

2023.07.31

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

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

5527

2024.08.14

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

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

精品课程

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

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12.4万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.8万人学习

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

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