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指向實例化出來的新的對象