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

175 阅读1分钟
  • 箭头函数没有自己的this,只能通过作用域链来向上查找离自己最近的那个函数的this

  • 箭头函数不能作为constructor,因此不能通过new 来调用,所以它并没用new.target这个属性

  • 箭头函数没有argument属性,可以通过rest可以获取

  • 箭头函数不能直接使用call和apply,bind来改变this

  • 箭头函数不能使用yield,不能作为generator函数

  • 箭头函数语法比普通函数更加简洁

    ES6 为 new 命令引入了一个 new.target 属性,该属性一般用在构造函数之中,返回new命令作用于的那个构造函数或构造方法。如果构造函数不是通过new命令或Reflect.construct()调用的,new.target会返回undefined,因此这个属性可以用来确定构造函数时怎样调用的。包括super也不存在以及原型prototype ---- 因为在执行new的时候需要将函数的原型赋值给实例对象的原型属性。