考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:设计制作 > JavaScript > 文章内容
  

javascript面向对象编程之二聊聊对象的事

 [ 2017年8月25日 ] 【

javascript是基于对象的编程语言。从window到document,从方法到类,从object到Array都是对象。

先看一下JSON(javascript object notation)对象,JSON是一种脚本操作时常用的数据交换格式对象,相对于XML来说JSON是一种比较轻量级的格式,在一些 intelligence的IDE中还可以方便的通过点操作JSON对象中的成员。

JSON是一种键/值对方式来描述内部成员的格式,其内部成员可以是几乎任何一种类型的对象,当然也可以是方法、类、数组,也可以是另外一个JSON对象。

var student = {
       Name: "张三",
       Age: 20,
       Hobby: "读书",
       Books: [
         {
           BookName : "C#" ,
           Price : 70
         },
         {
           BookName : "Java" ,
           Price : 70
         },
         {
           BookName : "Javascript" ,
           Price : 80
         }
       ]
};

上面代码用JSON对象描述了一个学生的信息,他有姓名、年龄、爱好、书集等。在访问该学生对象时,可以通过student变量来操作学生的信息。

var stuInfo = "姓名:" + student.Name +
            ",年龄:" + student.Age +
            ",爱好:" + student.Hobby +
            ",拥有的书:" +
                       student.Books[0].BookName + "、" +
            student.Books[1].BookName + "、" +
                       student.Books[2].BookName;
alert(stuInfo);

这样的操作方式风格和C#也非常相像。以上的代码是静态的构造出了学生对象,学生对象的结构就确定了。在其它的编程语言中一般对象结构一旦确定就不能很方便的进行修改,但是在javascript中的对象结构也可以方便的进行改动。下面为student对象添加一个Introduce方法来做自我介绍。

student.Introduce = function() {
       var stuInfo = "姓名:" + this.Name +
              ",年龄:" + this.Age +
              ",爱好:" + this.Hobby +
              ",拥有的书:" +
              this.Books[0].BookName + "、" +
              this.Books[1].BookName + "、" +
              this.Books[2].BookName;
       alert(stuInfo)
};
student.Introduce();

student对象原来并没有Introduce方法,第一次为student.Introduce赋值会在student对象中创建一个新的成员,后面如果再为student.Introduce赋值则会覆盖上一次所赋的值。当然我们这的值是一个function。也可以用类似索引的方式来添加成员。

student["Introduce"] = function() {
      ……
};

student.Introduce();

当然添加的成员也可以删除掉。删除掉之后则成为undefined,再访问该成员时则不支持。

delete student.Introduce;
student.Introduce();

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved