this

  • this的指向,是在函数被调用的时候确定的
  • 在函数执行过程中,this一旦被确定就不可更改

不同情况下的this指向

  1. 全局this指向window,定时器中的this指向window
  2. 函数中的this,如果函数被某一个对象所拥有,那么该函数在调用时,内部的this指向该对象。如果函数独立调用,那么该函数内部的this,则指向undefined(谁调用函数this就指向谁)
  3. 使用call、bind、apply可以指定this指向
    • call(obj,参数1,参数2,...) 将函数的this强制指向obj,然后调用函数,参数为参数1,参数2,...
    • apply(obj,[参数1,参数2,...]) 将函数的this强制指向obj,然后调用函数,参数为参数1,参数2,...
    • bind(obj,参数1,参数2,...) 将函数的this强制指向obj,不调用函数
  4. 构造函数中的this指向实例化出来的新的对象