JavaScript从入门到精通(微视频精编版)
上QQ阅读APP看书,第一时间看更新

5.3 对象访问语句

视频讲解

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

5.3.1 for…in语句

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

语法如下:

    for (变量 in 对象) {
        语句
    }

参数说明。

 变量:用于存储某个对象的所有属性名。

 对象:用于指定要遍历属性的对象。

 语句:用于指定循环体。

for…in语句用于对某个对象的所有属性进行循环操作。将某个对象的所有属性名称依次赋值给同一个变量,而不需要事先知道对象属性的个数。

注意

应用for…in语句遍历对象的属性,在输出属性值时一定要使用数组的形式(对象名[属性名])进行输出,而不能使用“对象名.属性名”这种形式。

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

    01  var object={user:"小月",sex:"女",age:23,interest:"运动、唱歌"};   //创建自定义对象
    02  for (var example in object){                                      //应用for...in循环语句
    03      document.write ("属性:"+example+"="+object[example]+"<br>"); //输出各属性名及属性值
    04  }

运行结果如图5.11所示。

图5.11 输出对象中的属性名及属性值

5.3.2 with语句

with语句用于在访问一个对象的属性或方法时避免重复引用指定对象名。使用with语句可以简化对象属性调用的层次。

语法如下:

    with(对象名称){
        语句
    }

参数说明。

 对象名称:用于指定要操作的对象名称。

 语句:要执行的语句,可直接引用对象的属性名或方法名。

在一个连续的程序代码中,如果多次使用某个对象的多个属性或方法,那么只要在with关键字后的括号()中写出该对象实例的名称,就可以在随后的大括号{}的程序语句中直接引用该对象的属性名或方法名,不必再在每个属性名或方法名前都加上对象实例名和“.”。

例如,应用with语句实现student对象的多次引用,代码如下:

    01  function Student(name,sex,age){
    02      this.name = name;                                   //设置对象的name属性
    03      this.sex = sex;                                        //设置对象的sex属性
    04      this.age = age;                                     //设置对象的age属性
    05  }
    06  var student=new Student("周星星","男",26);               //创建新对象
    07  with(student){                                           //应用with语句
    08      alert("姓名:"+name+"\n性别:"+sex+"\n年龄:"+age); //输出多个属性的值
    09  }

运行结果如图5.12所示。

图5.12 with语句的应用