天天看點

《JavaScript和jQuery實戰手冊(原書第2版)》——2.10節對象的簡單介紹

2.10 對象的簡單介紹

到目前為止,我們在本書中了解到,可以使用document.write()指令将一些内容寫到web頁面中,可以确定一個數組中有多少個項目,隻要輸入數組的名字,後面跟着一個點号和單詞“length”就可以了,例如,days.length。你可能會問,這些點号是幹什麼的?我們已經在不知道javascript的這一特殊文法的情況下學習3章内容了,現在該來了解一下它了。

對于javascript語言的很多元素,我們已經建立起了概念,包括web頁面的元素,也就是對象。當然,實際生活中也充滿了對象,例如,狗和小汽車。大多數對象都由不同的部分組成:狗有尾巴、腦袋和4條腿;小汽車有車門、車輪、頭燈、喇叭等。一個對象可以做一些事:例如小汽車可以運送乘客,狗可以吠叫。實際上,即便對象的一個部分也能做些事情:例如,尾巴可以擺動,喇叭可以鳴響。表2-7展示對象、對象的部分和對象的行為之間的關系。

表2-7:實際生活中對象的一個簡化表示

《JavaScript和jQuery實戰手冊(原書第2版)》——2.10節對象的簡單介紹

javascript的世界也充滿了對象:浏覽器視窗、文檔、字元串、數值和日期,這隻是幾個例子。和現實世界的對象一樣,javascript對象也由不同的部分組成。用程式設計的術語來說,對象的這些部分叫做屬性。對象能夠執行的行為叫做方法,也就是特定于一個對象的函數(就像内置的alert()函數),參見表2-8。

注意: 你總是可以将屬性和方法區分開來,因為方法以一對圓括号結束,例如write()。

javascript中的每個對象都有自己的一組屬性和方法。例如,數組對象有一個名為length的屬性,文檔對象有一個名為write()的方法。要通路一個對象的屬性,或者執行它的某個方法,使用點文法,也就是點号。點号将對象及其屬性和方法連接配接起來。例如,document.write()表示“運作document對象的write()方法”。如果現實世界也如此,可以像這樣讓一條狗來搖尾巴:dog.tail.wag()(當然,在實際生活中,狗幹得比這好很多)。

表2-8:兩個javascript對象(文檔對象和數組)的一些方法和屬性

《JavaScript和jQuery實戰手冊(原書第2版)》——2.10節對象的簡單介紹

就像在實際生活中你可能養幾條狗一樣,javascript程式也可以有同一種對象的多個版本。例如,假設建立了如下的兩個簡單變量:

實際上,這建立了兩個不同的字元串對象。字元串有自己的一組屬性和方法,這些和其他對象(例如,日期對象,将在本書14.4節介紹)的方法和屬性不同。當你建立了一個對象(也叫做建立了該對象的一個執行個體),可以通路該對象的所有屬性和方法。

注意: 我們已經遇到過另一個對象,它叫做window對象,表示浏覽器視窗本身。它基本上是web頁面以及頁面上的所有其他内容的容器對象。例如,alert()和prompt()都是視窗對象的方法,并且可以寫成這樣:window.alert()和window.prompt()。然而,既然視窗對象總是表示一個web頁面,那麼可以省略其名稱,是以,alert('hello')和window.alert('hello')是一樣的。

無論何時,當你建立一個新的變量并向其中存儲一個值的時候,實際上都建立了特定類型的對象的一個執行個體。是以,如下的javascript代碼,每一行都建立了不同類型的javascript對象:

随着你繼續閱讀本書,請記住下面的幾點:

javascript的世界充滿了很多不同類型的對象。

每個對象有自己的屬性和方法。

使用點文法來通路對象的屬性或調用對象的方法,例如,document.write()。

繼續閱讀