- JavaScript從入門(mén)到精通(微視頻精編版)
- 明日科技
- 829字
- 2020-09-01 15:02:26
5.3 對(duì)象訪問(wèn)語(yǔ)句

視頻講解
在JavaScript中,for…in語(yǔ)句和with語(yǔ)句都是專門(mén)應(yīng)用于對(duì)象的語(yǔ)句。下面對(duì)這兩個(gè)語(yǔ)句分別進(jìn)行介紹。
5.3.1 for…in語(yǔ)句
for…in語(yǔ)句和for語(yǔ)句十分相似,for…in語(yǔ)句用來(lái)遍歷對(duì)象的每一個(gè)屬性。每次都將屬性名作為字符串保存在變量中。
語(yǔ)法如下:
for (變量 in 對(duì)象) { 語(yǔ)句 }
參數(shù)說(shuō)明。
變量:用于存儲(chǔ)某個(gè)對(duì)象的所有屬性名。
對(duì)象:用于指定要遍歷屬性的對(duì)象。
語(yǔ)句:用于指定循環(huán)體。
for…in語(yǔ)句用于對(duì)某個(gè)對(duì)象的所有屬性進(jìn)行循環(huán)操作。將某個(gè)對(duì)象的所有屬性名稱依次賦值給同一個(gè)變量,而不需要事先知道對(duì)象屬性的個(gè)數(shù)。
注意
應(yīng)用for…in語(yǔ)句遍歷對(duì)象的屬性,在輸出屬性值時(shí)一定要使用數(shù)組的形式(對(duì)象名[屬性名])進(jìn)行輸出,而不能使用“對(duì)象名.屬性名”這種形式。
下面應(yīng)用for…in循環(huán)語(yǔ)句輸出對(duì)象中的屬性名和值。首先創(chuàng)建一個(gè)對(duì)象,并且指定對(duì)象的屬性,然后應(yīng)用for…in循環(huán)語(yǔ)句輸出對(duì)象的所有屬性和值。程序代碼如下:
01 var object={user:"小月",sex:"女",age:23,interest:"運(yùn)動(dòng)、唱歌"}; //創(chuàng)建自定義對(duì)象 02 for (var example in object){ //應(yīng)用for...in循環(huán)語(yǔ)句 03 document.write ("屬性:"+example+"="+object[example]+"<br>"); //輸出各屬性名及屬性值 04 }
運(yùn)行結(jié)果如圖5.11所示。

圖5.11 輸出對(duì)象中的屬性名及屬性值
5.3.2 with語(yǔ)句
with語(yǔ)句用于在訪問(wèn)一個(gè)對(duì)象的屬性或方法時(shí)避免重復(fù)引用指定對(duì)象名。使用with語(yǔ)句可以簡(jiǎn)化對(duì)象屬性調(diào)用的層次。
語(yǔ)法如下:
with(對(duì)象名稱){ 語(yǔ)句 }
參數(shù)說(shuō)明。
對(duì)象名稱:用于指定要操作的對(duì)象名稱。
語(yǔ)句:要執(zhí)行的語(yǔ)句,可直接引用對(duì)象的屬性名或方法名。
在一個(gè)連續(xù)的程序代碼中,如果多次使用某個(gè)對(duì)象的多個(gè)屬性或方法,那么只要在with關(guān)鍵字后的括號(hào)()中寫(xiě)出該對(duì)象實(shí)例的名稱,就可以在隨后的大括號(hào){}的程序語(yǔ)句中直接引用該對(duì)象的屬性名或方法名,不必再在每個(gè)屬性名或方法名前都加上對(duì)象實(shí)例名和“.”。
例如,應(yīng)用with語(yǔ)句實(shí)現(xiàn)student對(duì)象的多次引用,代碼如下:
01 function Student(name,sex,age){ 02 this.name = name; //設(shè)置對(duì)象的name屬性 03 this.sex = sex; //設(shè)置對(duì)象的sex屬性 04 this.age = age; //設(shè)置對(duì)象的age屬性 05 } 06 var student=new Student("周星星","男",26); //創(chuàng)建新對(duì)象 07 with(student){ //應(yīng)用with語(yǔ)句 08 alert("姓名:"+name+"\n性別:"+sex+"\n年齡:"+age); //輸出多個(gè)屬性的值 09 }
運(yùn)行結(jié)果如圖5.12所示。

圖5.12 with語(yǔ)句的應(yīng)用
- AngularJS入門(mén)與進(jìn)階
- C語(yǔ)言程序設(shè)計(jì)(第3版)
- 工程軟件開(kāi)發(fā)技術(shù)基礎(chǔ)
- INSTANT Weka How-to
- Java編程技術(shù)與項(xiàng)目實(shí)戰(zhàn)(第2版)
- Getting Started with Gulp
- Java系統(tǒng)化項(xiàng)目開(kāi)發(fā)教程
- Java Web從入門(mén)到精通(第3版)
- 運(yùn)維前線:一線運(yùn)維專家的運(yùn)維方法、技巧與實(shí)踐
- Python數(shù)據(jù)可視化之美:專業(yè)圖表繪制指南(全彩)
- Android 游戲開(kāi)發(fā)大全(第二版)
- 3D Printing Designs:Octopus Pencil Holder
- Implementing Domain:Specific Languages with Xtext and Xtend
- 現(xiàn)代JavaScript編程:經(jīng)典范例與實(shí)踐技巧
- Python網(wǎng)絡(luò)爬蟲(chóng)從入門(mén)到實(shí)踐