[JavaScript]了解 this 與 new 函式
什麼是 this
對於一個 JavaScript 的新手來說,是一個很頭大的問題,其實並沒有這麼的複雜,下面來實際說明:
this
this
其實並沒有想像中的複雜,如下:
物件.函式();
函式(function)裡的 this
, 指的就只是 函式前方的物件
而已,看下方範例:
var k = {
'name':'Andy',
'age': 20,
'show': function(){
console.log(this);
}
}
k.show();
另外如果 函式前沒有任何的物件
則 this
為 window
或是 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 的新物件