箭头函数和普通函数区别

116 阅读1分钟

箭头函数跟普通函数最大的区别就是消除函数二义性质

什么是函数二义性

函数的作用有两个;第一是构造函数来创建实例对象,第二是普通函数来执行;这就是函数二义性。 在es6中引入箭头函数class来消除二义性质

为什么要消除二义性

  1. 降低函数复杂度
  2. 降低心智负担,一眼明白是函数调用还是构造函数

表现出来的区别

箭头函数本质是来消除二义性的,所以关于构造函数的一切都会去除。按照这个逻辑去想

  1. 箭头函数没有this,普通函数的this指向依赖它是如何被调用的
  2. 箭头函数没有arguments对象,而是通过剩余参数(rest parameters)来获取所有参数的值
  3. 箭头函数没有prototype原型,不能用作构造函数,而普通函数可以

class为了实现构造函数功能所以它做了什么不言而喻