下一頁 1 2 3
基于對象的JavaScript語言
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自動將的屬性取出來,直到最后為此。
(2) with語句
使用該語句的意思是:在該語句體內,任何對變量的引用被認為是這個對象的屬性,以節省一些代碼。
with object{
...}
所有在with語句后的花括號中的語句,都是在后面object對象的作用域的。
(3) this關鍵字
this是對當前的引用,在JavaScript由于對象的引用是多層次,多方位的,往往一個對象的引用又需要對另一個對象的引用,而另一個對象有可能又要引用另一個對象,這樣有可能造成混亂,最后自己已不知道現在引用的那一個對象,為此JavaScript提供了一個用于將對象指定當前對象的語句this。
(4) New運算符
雖然在JavaScript中對象的功能已經是非常強大的了。但更強大的是設計人員可以按照需求來創建自己的對象,以滿足某一特定的要求。使用New運算符可以創建一個新的對象。其創建對象使用如下格式:
Newobject=NEW Object(Parameters table);
其中Newobject創建的新對象:object是已經存在的對象; parameters table參數表;new是JavaScript中的命令語句。
如創建一個日期新對象
newData=New Data()
birthday=New Data (December 12.1998)
之后就可使NewData、birthday作為一個新的日期對象了。
4、對象屬性的引用
對象屬性的引用可由下列三種方式之一實現:
(1)使用點(.)運算符
university.Name=“云南省”
university.city=“昆明市”
university.Date="1999"
其中university是一個已經存在的對象,Name、City、Date是它的三個屬性,并通過操作對其賦值。
(2)通過對象的下標實現引用
university[0]=“云南”
university[1]=“昆明市”
university[2]="1999"
通過數組形式的訪問屬性,可以使用循環操作獲取其值。
function showunievsity(object)
for (var j=0;j<2; j++)
document.write(object[j])
若采用For...in則可以不知其屬性的個數后就可以實現:
Function showmy(object)
for (var prop in this)
docament.write(this[prop]);
(3)通過字符串的形式實現
university["Name"]=“云南”
university["City"]=“昆明市”
university["Date"]="1999"
5、對象的方法的引用
在JavaScript中對象方法的引用是非常簡單的。
ObjectName.methods()
實際上methods()=FunctionName方法實質上是一個函數。 如引用university對象中的showmy()方法,則可使用:
document.write (university.showmy())
或:document.write(university)
如引用math內部對象中cos()的方法
則:
with(math)
document.write(cos(35));
document.write(cos(80));
若不使用with則引用時相對要復雜些:
document.write(Math.cos(35))
document.write(math.sin(80))
之所以說它是一門基于對象的語言,主要是因為它沒有提供象抽象、繼承、重載等有關面向對象語言的許多功能。而是把其它語言所創建的復雜對象統一起來,從而形成一個非常強大的對象系統。