1. 程式人生 > >淺析Javascript中的this

淺析Javascript中的this

在諸如Java,C#這種編譯型面嚮物件語言時,this代表的就是例項本身,而在Javascript中,情況稍有不同,this指代物件從程式碼表面來看分兩種情況:

a. 一種情況是指向函式物件本身;

b. 另一種情況是指向windows物件;

不像Java那樣有嚴格定義類,物件,方法,在Javascript中函式不僅是方法,也可以是物件,而且是一等物件,有很多時候它又像類,總之,函式是Javascript進行面向物件程式設計的核心。

情況a的程式碼示例:

function foo() {this.a = 123;
alert(this.a);
}
var object = new foo();
當使用new關鍵字建立例項時,this指向foo本身。

情況b的程式碼示例:

var a = 111;
function foo() {
alert(this.a);
}
foo();
當作為一個方法被呼叫時,this指向windows物件。