書(shū)名: JavaScript從入門(mén)到精通(微視頻精編版)作者名: 明日科技本章字?jǐn)?shù): 829字更新時(shí)間: 2020-09-01 15:02:26
5.3 對(duì)象訪問(wèn)語(yǔ)句

視頻講解
在JavaScript中,for…in語(yǔ)句和with語(yǔ)句都是專(zhuān)門(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ì)象的所有屬性名稱(chēng)依次賦值給同一個(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ì)象名稱(chēng)){ 語(yǔ)句 }
參數(shù)說(shuō)明。
對(duì)象名稱(chēng):用于指定要操作的對(duì)象名稱(chēng)。
語(yǔ)句:要執(zhí)行的語(yǔ)句,可直接引用對(duì)象的屬性名或方法名。
在一個(gè)連續(xù)的程序代碼中,如果多次使用某個(gè)對(duì)象的多個(gè)屬性或方法,那么只要在with關(guān)鍵字后的括號(hào)()中寫(xiě)出該對(duì)象實(shí)例的名稱(chēng),就可以在隨后的大括號(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)用
- Dynamics 365 for Finance and Operations Development Cookbook(Fourth Edition)
- Unity 2020 By Example
- Flask Web全棧開(kāi)發(fā)實(shí)戰(zhàn)
- ASP.NET MVC4框架揭秘
- C# 2012程序設(shè)計(jì)實(shí)踐教程 (清華電腦學(xué)堂)
- Mastering Yii
- Linux Shell核心編程指南
- MySQL入門(mén)很輕松(微課超值版)
- Visual C++從入門(mén)到精通(第2版)
- SQL Server on Linux
- Flink核心技術(shù):源碼剖析與特性開(kāi)發(fā)
- HikariCP數(shù)據(jù)庫(kù)連接池實(shí)戰(zhàn)
- MySQL核心技術(shù)與最佳實(shí)踐
- Node.js進(jìn)階之路
- 軟件測(cè)試