[JavaScript]了解 this 與 new 函式

[JavaScript]了解 this 與 new 函式

什麼是 this 對於一個 JavaScript 的新手來說,是一個很頭大的問題,其實並沒有這麼的複雜,下面來實際說明:


this

this 其實並沒有想像中的複雜,如下:

物件.函式(); 

函式(function)裡的 this , 指的就只是 函式前方的物件 而已,看下方範例:

var k = {
 'name':'Andy',
 'age': 20,
 'show': function(){
    console.log(this);
  }
}

k.show();

另外如果 函式前沒有任何的物件thiswindow 或是 global 的物件,如下:

function show(){
 console.log(this);
}
show();

以上編碼都可以直接在 Chrome 的 console 中,查看


new

而我們平常在使用 建構式 (Constructor) 建立 新物件 時,有使用到 new 這個關鍵字,如下:

function People(){
 this.name ="Andy";
 this.age  ="20";
}

var andy = new People()

其實當使用 new 時,this 就會被 覆寫 成當前的變數名稱,如下:

var andy = function(){
 this = andy; //注意這行
 this.name = "Andy";
 this.age = "20";
}

所以最後才會有個為 andy 的新物件


參考內容

Facebook 功能: