this指向机制


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