JavaScript語言是基於對象的(Object-Based),而不是物件導向的(object-oriented)。之所以說它是一門基於對象的語言,主要是因為它沒有提供象抽象、繼承、重載等有關物件導向語言的許多功能。而是把其它語言所建立的複雜物件統一起來,從而形成一個非常強大的對象系統。
雖然JavaScript語言是一門基於對象的,但它還是具有一些物件導向的基本特徵。它可以根據需要建立自己的對象,從而進一步擴大JavaScript的應用範圍,增強編寫功能強大的Web文檔。
一、對象的基礎知識
1、對象的基本結構
JavaScript中的對象是由屬性(properties)和方法(methods)兩個基本的元素的構成的。前者是對象在實施其所需要行為的過程中,實現資訊的裝載單位,從而與變數相關聯;後者是指對象能夠按照設計者的意圖而被執行,從而與特定的函數相聯。
2、引用對象的途徑
一個對象要真正地被使用,可採用以下幾種方式獲得:
o 引用JavaScript內部對象;
o 由瀏覽器環境中提供;
o 建立新對象。
這就是說一個對象在被引用之前,這個對象必須存在,否則引用將毫無意義,而出現錯誤資訊。從上面中我們可以看出JavaScript引用對象可通過三種方式擷取。要麼建立新的對象,要麼利用現存的對象。
3、有關對象動作陳述式
JavaScript不是一純物件導向的語言,它設有提供物件導向語言的許多功能,因此JavaScript設計者之所以把它你“基於對象”而不是物件導向的語言,在JavaScript中提供了幾個用於操作對象的語句和關鍵字及運算子。
(1) For...in語句
格式如下:
For(對象屬性名稱 in 已知對象名)
說明:
o 該語句的功能是用於對已知對象的所有屬性進行操作的控制迴圈。它是將一個已知對象的所有屬性反覆置給一個變數;而不是使用計數器來實現的。
o 該語句的優點就是無需知道對象中屬性的個數即可進行操作。
例:下列函數是顯示數組中的內容:
Function showData(object)
for (var X=0; X<30;X++)
document.write(object[i]);
該函數是通過數組下標順序值,來訪問每個對象的屬性,使用這種方式首先必須知道數組的下標值,否則若超出範圍,則就會發生錯誤。而使For...in語句,則根本不需要知道對象屬性的個數,見下:
Function showData(object)
for(var prop in object)
document.write(object[prop]);
使用該函數時,在迴圈體中,For自動將的屬性取出來,直到最後為此。