javascript技術講座-基於對象的javascript語言

來源:互聯網
上載者:User
對象

JavaScript語言是基於對象的(Object-Based),而不是物件導向的(object-oriented)。之所以說它是一門基於對象的語言,主要是因為它沒有提供象抽象、繼承、重載等有關物件導向語言的許多功能。而是把其它語言所建立的複雜物件統一起來,從而形成一個非常強大的對象系統。

雖然JavaScript語言是一門基於對象的,但它還是具有一些物件導向的基本特徵。它可以根據需要建立自己的對象,從而進一步擴大JavaScript的應用範圍,增強編寫功能強大的Web文檔案。

一、對象的基礎知識

1、對象的基本結構

JavaScript中的對象是由屬性(properties)和方法(methods)兩個基本的元素的構成的。前者是對象在實施其所需要行為的過程中,實現資訊的裝載單位,從而與變數相關聯;後者是指對象能夠按照設計者的意圖而被執行,從而與特定的函數相聯。

2、引用對象的途徑

一個對象要真正地被使用,可採用以下幾種方式獲得:

引用JavaScript內部對象;

由瀏覽器環境中提供;

建立新對象。

這就是說一個對象在被引用之前,這個對象必須存在,否則引用將毫無意義,而出現錯誤資訊。從上面中我們可以看出JavaScript引用對象可通過三種方式擷取。要麼建立新的對象,要麼利用現存的對象。

3、有關對象動作陳述式

JavaScript不是一純物件導向的語言,它設有提供物件導向語言的許多功能,因此JavaScript設計者之所以把它你“基於對象”而不是物件導向的語言,在JavaScript中提供了幾個用於操作對象的語句和關鍵詞及運算子。

1)、For...in語句

格式如下:

For(對象屬性名稱 in 已知對象名)

說明:

該語句的功能是用於對已知對象的所有屬性進行操作的控制迴圈。它是將一個已知對象的所有屬性反覆置給一個變數;而不是使用計數器來實現的。

該語句的優點就是無需知道對象中屬性的個數即可進行操作。

例:下列函數是顯示數組中的內容:

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)、his關鍵詞

this是對當前的引用,在JavaScript由於對象的引用是多層次,多方位的,往往一個對象的引用又需要對另一個對象的引用,而另一個對象有可能又要引用另一個對象,這樣有可能造成混亂,最後自己已不知道現在引用的那一個對象,為此JavaScript提供了一個用於將對象指定當前對象的語句this。

4)、ew運算子

雖然在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=“昆明市”

university="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))



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.