5.2 对象访问语句

在JavaScript中,for…in语句和with语句都是专门应用于对象的语句。下面对这两个语句分别进行介绍。

5.2.1 for…in循环语句

for…in循环语句和for循环语句十分相似,用来遍历对象的所有属性。每次都将属性名作为字符串,保存在变量里。

语法格式:

    for(variable in object ) {
        …statement
    }

在该语法中,variable是一个变量名,声明一个变量的var语句、数组的一个元素或者对象的一个属性(它应该是一个适用于赋值表达式左边的值);object是一个对象名,或者是计算结果为对象的表达式。statement通常是一个原始语句或者语句块,由它构成循环的主体。

下面应用for…in循环语句输出对象中的属性名和值。首先创建一个对象,并且指定对象的属性,然后应用for…in循环语句输出对象的所有属性和值。代码如下;

运行结果:

    属性:user=×××
    属性:age=23
    属性:QQ=1838**
    属性:e_mail=ppp***@sina.com

应用for…in循环语句可以为对象的每个属性执行一个语句集合,可以对JavaScript中的任何对象应用for…in循环语句。

【例5.14】 应用for…in循环语句输出document对象的属性和值。(实例位置:资源包\TM\sl\5\14)

首先定义两个变量,object01变量的值为document对象,object02的值为空,然后应用for…in循环语句将document对象的属性和值进行输出,并且将返回的值赋给object02,最后输出object02的值。运行结果如图5.15所示。

图5.15 应用for…in循环语句输出document对象的属性和值

代码如下:

    <script language="javascript">
    var object01=document;
    var object02="";
    for(var object03 in object01){
          object02=object03+"="+object01[object03];
          document.write(object02+"<br>");
    }
    </script>

5.2.2 with语句

with语句用于需要多次访问某个对象的属性或方法的情况下,可避免重复使用指定对象引用。

语法格式:

    with(object){
         statements
    }

参数说明:

object:指定statements块中没有引用的情况下使用哪个对象引用。

【例5.15】 当需要多次使用某个对象的属性或方法时,只要在with关键字后的括号“()”中写出该对象的名称,就可以在随后的大括号“{}”中直接引用该对象的属性名或方法名,不必再加上对象实例名和“.”。下面应用with语句实现date对象的多次应用。运行结果如图5.16所示。(实例位置:资源包\TM\sl\5\15)

图5.16 with语句的应用

代码如下: