ExtJs UI框架學習一

首先複習一下JavaScript基礎,以下內容爲轉載內容。

JavaScript OOP(1)面向對象基礎

 

這個是我的《Ajax完全自學手冊》一書第5章節選部分,還會有後續章節,陸續貼出

5.1 JavaScript中的對象

編程語言發展至今,基本上都是面向對象的語言。面向對象的語言十分優雅、便於學習和掌握、可以多次重用。在JavaScript中,大量使用內置對象。實際上,開發者可以利用JavaScript面向對象的特徵,定義類、對象,從而進行面向對象開發。

5.1.1 什麼是對象

在JavaScript中,沒有明確的對類、對象等概念定義,但是JavaScript用其自己的方式實現了這些概念。

一般面向對象的語言裏,對象被認爲是通過類的構造函數進行實例化的,即類的實例。所有的對象都是由類進行定義的,具有類中定義各種屬性和方法的實 例。在JavaScript中,這些特徵都得以實現。並且在JavaScript中,構造函數依然可以自定義,並且可以進行重載。

在JavaScript中的對象被認爲是特性的集合。特性可以是函數、也可以是普通的成員變量或其他類的引用。如果特性是1個函數,那麼該函數被認爲是當前對象的方法,普通的成員變量被認爲是對象的屬性。

5.1.2 聲明及實例化對象

JavaScript中,聲明對象的可以通過var關鍵字進行。示例代碼如下:

var obj;

JavaScript與其他面向對象的語言一樣,也定義了new關鍵字作爲實例化對象的操作符。實例化1個對象可以通過以下的代碼實現:

var obj1=new Object();

在JavaScript中,對象的類型由實例化的類型決定。

5.1.3 對象的引用及銷燬

在JavaScript中,變量可以存儲原始值和引用值。原始值被認爲存儲在棧中,擁有固定大小,可以直接操縱。引用值被認爲存儲在堆中,引用值僅僅是內存指針即實際對象的引用。

實際上在JavaScript中,有5種類型的對象被認爲是以原始值存儲的。undefined、boolean、number、string、 object5個類的對象大小固定,使用棧分配內存,故而被認爲是原始值。在這裏要特別指出的是null,null被認爲是指向空object對象的引 用。當運行以下代碼時,結果爲object。

function createObject()

{

var obj=null;

alert(typeof(obj));

}

當調用以上代碼時,讀者會看到提示框顯示object字樣。還要特別指出的是undefined,undefined類型只有1個值即undefined。當對象未實例化時或函數沒有明確的返回值時,就被認爲是undefined。示例代碼如下:

function createObject()

{

var obj;

alert(typeof(obj));

}

function doNothing()

{

}

var doSomething=doNothing();

alert(typeof(doSomething));

在JavaScript中支持typeof()運算符,可以動態分析對象的類型。在上例中,讀者一定已經看到了typeof()的使用。

JavaScript遵循ECMAScript標準,ECMAScript標準規定所有瀏覽器都必須支持無用存儲單元收集程序。當1個對象沒有任何引用時,會被無用存儲單元收集程序銷燬。所有局部變量在超出作用域或生命週期完結時,也會被無用存儲單元收集程序銷燬。

在JavaScript中,可以將對象引用設爲null,從而進行對象銷燬。

5.1.4 綁定機制

綁定機制是語言實現的關鍵,綁定機制是指將對象類型與對象實例緊密結合,通知編譯器當前對象具有什麼方法和屬性。

綁定機制有兩種,早期綁定和晚期綁定。

q 早期綁定:早期綁定是開發者最熟悉和使用最多的一種綁定方式。早期綁定具有這樣的特點:對象聲明時,對象的屬性和方法就被編譯成爲對象的一部分、對象的類 型一旦確定就不能進行隨意的更改、對象類型的變換必須遵循特定的規則。在Java、C#、VB.NET這樣的強類型語言中,都採用了早期綁定的方式。

晚期綁定:在一些弱類型的語言中,晚期綁定被大量使用。晚期綁定具有這樣的特點:對象聲明時,對象的屬性和方法並沒有編譯爲對象的一部分,而是在運 行期動態檢查對象是否具有相應的屬性和方法。在JavaScript等弱類型的語言中,都採用了晚期綁定的方式。晚期綁定導致這些弱類型語言不能進行實時 報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章