difference between arrow and usual functions

引入箭头函数有两个方面的作用:更简短的函数并且不绑定this

不绑定this

在箭头函数出现之前,每个新定义的函数都有它自己的 this值(在构造函数的情况下是一个新对象,在严格模式的函数调用中为 undefined,如果该函数被作为“对象方法”调用则为基础对象等)。

箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this

  • 箭头函数不绑定Arguments 对象
  • 箭头函数没有定义this绑定
  • 箭头函数不能用作构造器,和 new一起用会抛出错误。
  • 箭头函数没有prototype属性。
  • yield 关键字通常不能在箭头函数中使用(除非是嵌套在允许使用的函数内)。因此,箭头函数不能用作生成器。