箭头函数和普通函数的区别

194 阅读1分钟

箭头函数普通函数的主要区别在于语法、this指向、arguments对象、构造函数能力以及原型对象等方面。

  1. 语法简洁性‌:箭头函数比普通函数更简洁。箭头函数可以省略function关键字、return关键字以及大括号(当只有一个参数时,圆括号也可以省略)。‌
  2. this指向不同‌:普通函数的this指向在运行时动态确定,取决于函数的调用方式。箭头函数的this指向在定义时就确定了,继承自其外层作用域的this,且不能通过callapplybind等方法改变。‌
  3. 有无arguments对象‌:箭头函数没有自己的arguments对象,但可以通过剩余参数(...)来获取所有传入参数。‌
  4. 是否能作为构造函数‌:普通函数可以用作构造函数,通过new操作符创建对象实例。箭头函数不能作为构造函数,因此不能通过new来实例化一个类或创建某个类型的新实例。
  5. 原型对象‌:箭头函数没有自己的原型对象,因此不能为其添加方法。‌
  6. 适用场景‌:普通函数适用于需要动态改变this指向、创建对象实例、添加原型方法等场景。箭头函数在处理回调函数、保持this指向不变等场景下更具优势。