javascript this 用法例項程式碼解析

antzone發表於2017-04-07

其實this的作用的一些細節隨著ES版本的提高會有所不同。

比如在嚴格模式下this的指向就發生了一些改變,具體可以參閱嚴格模式下this的指向問題一章節。

下面介紹的this的用法都是基於非嚴格模式下的。

一.在全域性環境下指向window:

[JavaScript] 純文字檢視 複製程式碼
console.log(this===window);

返回值是true,說明在全域性環境中,this是指向window。

二.this指向物件:

在物件中,this就是指向物件本身的,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  webName:"螞蟻部落",
  url:"softwhy.com",
  show:function(){
    console.log(this.webName);
  }
}
obj.show()

輸出值是"螞蟻部落",說明this是指向obj物件的。

要判斷函式中的this指向,只需要明瞭一件事情就可以,那就是this指向呼叫此函式的物件。

也可以認為此函式屬於哪個物件,裡面的this就指向哪個物件。

更多內容可以參閱javascript this用法詳解一章節。

三.apply,call改變函式的this指向:

使用上面兩個方法可以改變this的指向。

具體可以參閱javascript apply()一章節。

四.new運算子的作用:

它對this的影響可以參閱js new運算子一章節。

相關文章