惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
Recent Announcements
Recent Announcements
Jina AI
Jina AI
G
Google Developers Blog
腾讯CDC
博客园_首页
博客园 - 【当耐特】

博客园 - 悉野

go编译期接口断言 / 编译期接口检查(compile-time interface assertion / compile-time interface check) Go 的类型断言 ssh连结vmware中ubuntu的共享文件夹 spring加载冲突问题 spring一个错误修正 抓安卓日记到文件 注册表删除桌面顽固图标 github买的账号无法拉取代码的解决方法 apk常用命令 java服务器异常处理 ES6 学习难度分层 promise原理 材质, 纹理, shader之间的关系 TCP与UDP区别 javascript中函数解析过程 cocos使用fgui 几种服务注册与发现的区别 mybatis测试 向量点乘与叉乘 unity画布3种渲染模式 go学习笔记10(HTTP) go学习笔记9(TCP) go学习笔记8(反射) c++简单的线程池 operator new 是 C++ 动态内存分配的核心函数,负责分配原始内存,不调用构造函数 C++的定位放置new(Placement new) go学习笔记7(泛型,文件读写,测试) go学习笔记6(协程与channel,select使用,线程安全,异常处理) go学习笔记5(函数,结构体,自定义类型和类别名,接口) go学习笔记4(数组与切片,map,if,switch,for循环)
javascript中=>与function的区别
悉野 · 2026-05-08 · via 博客园 - 悉野

在 JavaScript 中,=>(箭头函数)和 function(普通函数)看起来都能定义函数,但它们在行为上有本质区别

下面我从 语法 → this → arguments → 构造函数 → 使用场景​ 给你系统讲清楚。


一、最直观的区别(先看结论)

 

对比项

function

=>(箭头函数)

this

动态绑定

词法绑定(继承外层)

arguments

✅ 有

❌ 没有

constructor

✅ 可以

❌ 不可以

prototype

✅ 有

❌ 没有

适合

方法、构造函数

回调、短函数

1️⃣ function:this 由“调用方式”决定

function foo() {
console.log(this);
}

foo(); // window / global
obj.foo = foo;
obj.foo(); // obj
new foo(); // 新对象

2️⃣ 箭头函数:this 在定义时就定死了

const foo = () => {
console.log(this);
};

foo(); // 外层 this
obj.foo = foo;
obj.foo(); // 仍然是外层 this

const obj = {
  name: 'obj',
  f1() {
    setTimeout(function () {
      console.log(this.name); // undefined
    }, 100);
  },
  f2() {
    setTimeout(() => {
      console.log(this.name); // obj
    }, 100);
  }
};

function→ this 变成 window

=>→ this 继承 f2

 用 function当:

  • 对象方法

  • 构造函数

  • 需要 arguments

  • 需要 prototype

 用 =>当:

  • 回调函数

  • 定时器

  • Promise / async

  • 想锁定 this