前端JS: 箭头函数与普通函数区别

4 阅读1分钟

箭头函数 vs 普通函数 核心区别

一、核心概念

  • 普通函数function关键字定义,有独立作用域
  • 箭头函数=>语法,继承外层作用域

二、主要区别

1. this 指向

  • 普通函数:由调用方式决定
  • 箭头函数:继承定义时的外层 this,不可改变
// 普通函数
obj.method(); // this 指向 obj

// 箭头函数
const func = () => this; // this 来自外层

2. 构造函数

  • 普通函数:可作构造函数,用 new调用
  • 箭头函数:不能作构造函数,new调用报错

3. arguments 对象

  • 普通函数:有 arguments对象
  • 箭头函数:无 arguments,用剩余参数 ...args

4. prototype 属性

  • 普通函数:有 prototype
  • 箭头函数:无 prototype

5. 语法

  • 箭头函数更简洁,支持隐式返回
  • 普通函数可函数提升,箭头函数不能

三、使用场景

  • 箭头函数:回调函数、保持 this 场景
  • 普通函数:构造函数、对象方法、动态 this 场景