引入箭头函数有两个方面的作用:更简短的函数并且不绑定this
。
不绑定this
在箭头函数出现之前,每个新定义的函数都有它自己的 this
值(在构造函数的情况下是一个新对象,在严格模式的函数调用中为 undefined
,如果该函数被作为“对象方法”调用则为基础对象等)。
箭头函数不会创建自己的this
,它只会从自己的作用域链的上一层继承this
。
- 箭头函数不绑定
Arguments
对象 - 箭头函数没有定义
this
绑定 - 箭头函数不能用作构造器,和
new
一起用会抛出错误。 - 箭头函数没有
prototype
属性。 yield
关键字通常不能在箭头函数中使用(除非是嵌套在允许使用的函数内)。因此,箭头函数不能用作生成器。