This在不同情况下的指向
This所处的场景
使用this的场景可大致分为下面几类:
- 普通函数调用:
this指向全局对象 - class调用:
this指向class实例 - bind、call、apply调用:
this指向传入的对象 - 作为对象方法:
this指向对象实例 - 箭头函数
不同的场景this的指向会发生变化,但有它们都有一个共同点,那就是**this是在执行时才确定其最终指向,而不是在定义时确定**。这一点和自由变量的查找有很大不同。
箭头函数的this
- 箭头函数没有自己的
this,它的this在定义时继承于上级作用域 - 箭头函数的
this不能被call、apply、bind等函数改变 - 箭头函数没有
prototype。综上它不能用作构造函数用new操作符 - 箭头函数没有
arguments对象 - 箭头函数不能用作
generator函数