《HTML教程》-第5章 對(duì)象、數(shù)組與函數(shù)_第1頁(yè)
《HTML教程》-第5章 對(duì)象、數(shù)組與函數(shù)_第2頁(yè)
《HTML教程》-第5章 對(duì)象、數(shù)組與函數(shù)_第3頁(yè)
《HTML教程》-第5章 對(duì)象、數(shù)組與函數(shù)_第4頁(yè)
《HTML教程》-第5章 對(duì)象、數(shù)組與函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JavaScript對(duì)象是一系列屬性的集合,每個(gè)屬性由“key:value”的形式組成??梢赃@么說(shuō),JavaScript對(duì)象就是一個(gè)Map。Map的key是字符串,而value可以是JavaScript的任何數(shù)據(jù)類型,當(dāng)然也可以是另一個(gè)對(duì)象,或者是數(shù)組(稍后介紹),還可以是函數(shù)(這時(shí)稱這個(gè)屬性為對(duì)象的方法)。對(duì)象的屬性可以通過(guò)對(duì)象的prototype繼承,對(duì)象的繼承屬于JavaScript的高級(jí)特性,這里我們并不深入討論這一話題,感興趣的讀者可以參考文獻(xiàn)[19]和[20],也可以參考其他關(guān)于高級(jí)JavaScript的書籍。對(duì)象的屬性是動(dòng)態(tài)的,可以自由的增加或刪除。除了字符串、數(shù)字、true、false、null或undefined之外的都是對(duì)象,但字符串、數(shù)字和布爾值也可以作為對(duì)象使用。對(duì)象是一種引用類型,另一種重要的引用類型就是數(shù)組。數(shù)組是一組元素的集合,與其他編程語(yǔ)言不同的是,它可以是不同類型的元素的集合。數(shù)組元素即可以是原始類型,也可以引用類型,甚至可以是另一個(gè)數(shù)組或者函數(shù)。函數(shù)是JavaScript的重要組成部分,也是聲明對(duì)象的一種方式。JS函數(shù)與其他語(yǔ)言的函數(shù)略有不同,沒(méi)有返回值類型,參數(shù)列表也比較靈活。如果學(xué)習(xí)過(guò)其他編程語(yǔ)言,可以對(duì)比學(xué)習(xí),溫故而知新。5.1對(duì)象的聲明

JavaScript的對(duì)象可以用字面量進(jìn)行聲明,也可以使用new關(guān)鍵字進(jìn)行聲明,還可以使用Object.create()函數(shù)創(chuàng)建對(duì)象,下面分別予以說(shuō)明。5.1.1字面量聲明對(duì)象

格式:var對(duì)象名={屬性名1:屬性值1,屬性名2:屬性值2,…,屬性名n:屬性值n};其中,var是聲明變量的關(guān)鍵字(見(jiàn)4.5節(jié)),對(duì)象名是指向聲明對(duì)象的引用。對(duì)象的聲明可概括為以下幾點(diǎn):◆對(duì)象是“屬性名:屬性值”對(duì)的集合;

◆這些名值對(duì)以逗號(hào)(,)分隔;◆“屬性名”為字符串類型,命名方式應(yīng)符合標(biāo)識(shí)符(見(jiàn)4.2.3節(jié))的命名規(guī)則;◆“屬性值”可以是JavaScript中任意類型的值。甚至可以是另一個(gè)對(duì)象。這里需要注意的是:在所有的編程語(yǔ)言中用到的符號(hào)都是英文狀態(tài)的符號(hào),而不是漢字狀態(tài)的符號(hào),這一點(diǎn)需要特別注意!在輸入時(shí)千萬(wàn)要注意)。其中的省略號(hào)(…)并不是格式的一部分,實(shí)際聲明時(shí)不能出現(xiàn),它只是表示省略掉的名值對(duì)。下面舉幾個(gè)聲明的例子。varempty={};//聲明一個(gè)空對(duì)象varbook={“name”:“Ajax實(shí)用技術(shù)”,//字符串類型的屬性值“price”:39.0,//浮點(diǎn)型的屬性值“author”:{//對(duì)象類型的屬性值“name”:“程繼洪”,“organization”:“煙臺(tái)南山學(xué)院”}};5.1.2new關(guān)鍵字創(chuàng)建對(duì)象new關(guān)鍵字創(chuàng)建對(duì)象是在new關(guān)鍵字后面加上一函數(shù)調(diào)用,或者說(shuō)構(gòu)造函數(shù)。所謂的構(gòu)造函數(shù)就是作為new關(guān)鍵字創(chuàng)建對(duì)象用的函數(shù),它負(fù)責(zé)初始化JavaScript對(duì)象。在JavaScript中聲明函數(shù)就相當(dāng)于創(chuàng)建了一個(gè)構(gòu)造函數(shù),或者說(shuō)定義函數(shù)就相當(dāng)于定義了一類對(duì)象。new關(guān)鍵字創(chuàng)建對(duì)象舉例如下:varo=newObject();//創(chuàng)建一個(gè){}空對(duì)象vararr=newArray();//創(chuàng)建一個(gè)空數(shù)組[]vard=newDate();//創(chuàng)建一個(gè)指示當(dāng)前時(shí)間的對(duì)象varr=newRegExp(“js”);//創(chuàng)建一個(gè)正則表達(dá)式對(duì)象5.1.3Object.create()創(chuàng)建對(duì)象這種創(chuàng)建對(duì)象的方式是通過(guò)繼承的方式來(lái)創(chuàng)建對(duì)象的。在JavaScript中有一個(gè)二級(jí)對(duì)象prototype(根據(jù)JavaScript版本的不同,這個(gè)二級(jí)對(duì)象可能為null,但這種情況非常少),可以通過(guò)Ototype引用這個(gè)二級(jí)對(duì)象,默認(rèn)情況下Ototype為空對(duì)象,即相當(dāng)于字面量的{}對(duì)象。任何JavaScript對(duì)象(prototype對(duì)象除外)都包含這個(gè)prototype對(duì)象,而且所有的對(duì)象都可以繼承prototype中的屬性和方法,所謂對(duì)象的方法就是指屬性值為函數(shù)的屬性。通過(guò)Object.create()方法創(chuàng)建對(duì)象實(shí)質(zhì)上是通過(guò)繼承的方式創(chuàng)建對(duì)象。根據(jù)ECMAScript5的定義,Object.create()方法以它的第一個(gè)參數(shù)作為prototype創(chuàng)建對(duì)象。例如:varo1=Object.create({x:2,y:3});則對(duì)象o1從{x:2,y:3}字面量聲明的對(duì)象的prototype繼承屬性和方法。也可以這么認(rèn)為,o1對(duì)象繼承了兩個(gè)屬性x和y,屬性值分別是2和3。用關(guān)鍵字new創(chuàng)建對(duì)象,則從構(gòu)造函數(shù)的prototype繼承屬性和方法。如varo=newObject();//從Ototype繼承vararr=newArray();//從Atotype繼承等等。對(duì)象創(chuàng)建的代碼如清單5-1所示。在上面的代碼中,用字面量方式聲明了對(duì)象book,用new關(guān)鍵字的方式聲明了對(duì)象book1,用Object.create()方式創(chuàng)建了對(duì)象o1。下面介紹屬性的操作。5.2屬性操作

聲明對(duì)象后可以訪問(wèn)這的屬性,設(shè)置屬性和刪除屬性,因?yàn)镴avaScript的屬性是動(dòng)態(tài)的,可以隨時(shí)添加和刪除。5.2.1屬性引用屬性訪問(wèn)有兩種方式,一種是點(diǎn)(.)操作符訪問(wèn)方式,另一種是數(shù)組([])訪問(wèn)方式,格式如下:對(duì)象名.屬性名; //點(diǎn)操作符訪問(wèn)屬性對(duì)象名[“屬性名”]; //數(shù)組形式訪問(wèn)屬性第二種方式訪問(wèn)對(duì)象屬性比較特殊,也就是說(shuō)屬性名可以作為數(shù)組的下標(biāo)使用,這與其他編程語(yǔ)言不同。5.2.2屬性刪除

對(duì)于JavaScript中的對(duì)象,其屬性是可以隨時(shí)添加和刪除的。刪除屬性的語(yǔ)法如下:delete對(duì)象名.屬性名;其中,delete是關(guān)鍵字,對(duì)象名是要?jiǎng)h除屬性的對(duì)象的名字,點(diǎn)號(hào)(.)是訪問(wèn)對(duì)象屬性的操作符,屬性名是要?jiǎng)h除的屬性的名字。屬性操作代碼如清單5-2所示。清單5-2對(duì)象的屬性操作代碼中的out方法用于輸出指定的內(nèi)容,并自動(dòng)換行。它定義在源代碼js目錄下的utils.js文件中,使用時(shí)需要用<scriptsrc="../js/utils.js"></script>導(dǎo)入這個(gè)外部js文件。代碼進(jìn)行了詳細(xì)的注釋,讀者可以對(duì)照注釋理解代碼,同時(shí)參考輸出結(jié)果。清單5-2的代碼均在隨書源碼的Listing5-2.html中。大家可以運(yùn)行這個(gè)html文件,也可以自己新建html文件自行輸入清單5-2的代碼。強(qiáng)烈推薦這種方式,因?yàn)槌绦蛟O(shè)計(jì)的實(shí)踐性強(qiáng),多寫代碼是培養(yǎng)編程高手的必由之路。對(duì)于book['author'].name這種寫法,大家可能感到不好理解,下面詳細(xì)說(shuō)明一下。如下圖所示,我們知道可以使用[]和點(diǎn)號(hào)操作符訪問(wèn)對(duì)象的屬性。對(duì)于book對(duì)象我們通過(guò)[]操作符訪問(wèn)它的author屬性,而author屬性本身又是一個(gè)對(duì)象,當(dāng)然可以使用點(diǎn)號(hào)操作符訪問(wèn)它的name屬性。換句話說(shuō),就是無(wú)論對(duì)象位于什么位置,都可以以點(diǎn)號(hào)和[]訪問(wèn)它的屬性。同時(shí),這種嵌套可以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論