# 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
函数