首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.9 对象

对象(object)是一种非常重要的数据类型,但此前我们还没有提到过它。对象是自我包含的数据集合,包含在对象里的数据可以通过两种形式——即属性(property)和方法(method)访问:

  ●属性是隶属于某个特定对象的变量;

  ●方法是只有某个特定对象才能调用的函数。

对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体。

在JavaScript脚本里,属性和方法都需要使用如下所示的“点”语法来访问:

你们已经见过如何用mood和age等变量来存放诸如“心情”和“年龄”之类的值。如果它们是某个对象的属性——这里不妨假设那个对象的名字是Person,我们就必须使用如下所示的记号来使用它们:

假如Person对象还关联着一些诸如walk()和sleep()之类的函数,这些函数就是这个对象的方法,而我们必须使用如下所示的记号来访问它们:

把这些属性和方法全部集合在一起,我们就得到了一个Person对象。换句话说,我们可以把Person看作是所有这些属性和方法的统称。

为了使用Person对象来描述一个特定的人,我们需要创建一个Person对象的实例(instance)。实例是对象的具体表现;对象是统称,实例是个体。例如,你和我都是人,都可以用Person对象来描述;但你和我是两个不同的个体,很可能有着不同的属性(例如,你和我的年龄可能不一样)。因此,你和我对应着两个不同的Person对象——它们虽然都是Person对象,但它们是两个不同的实例。

在JavaScript语言里,为给定对象创建一个新实例需要使用new关键字,如下所示:

上面这条语句将创建出Person对象的一个新实例jeremy。有了这个新实例,我们就可以像下面这样利用Person对象的属性来检索关于jeremy的信息了:

对象、属性、方法和实例等概念都比较抽象,为了让大家对这些概念有一个直观的认识,我在这里把虚构的Person对象作为例子。Person对象在JavaScript语言里并不存在。我们可以利用JavaScript语言来创建自己的对象——术语称之为用户定义对象(user-defined object)。用户定义对象的创建工作是一个相当高级的话题,我们眼下还无需对它做进一步讨论。

在电视上的烹饪节目里,只要镜头一转,厨师就可以端出一盘美味的菜肴并向大家介绍说:“这是我刚做好的”。JavaScript与这种节目里的主持人颇有几分相似:它提供了一系列预先定义好的对象,而我们可以把这些对象直接用在自己的脚本里。人们把这些对象称为内建对象(native object)。

2.9.1 内建对象

你们其实已经见过一些JavaScript内建对象了。数组就是一种JavaScript内建对象。当我们使用new关键字去初始化一个数组时,其实是在创建一个Array对象的新实例:

当需要了解某个数组有多少个元素时,我们利用Array对象的length属性来获得这一信息:

Array对象只是诸多JavaScript内建对象中的一种。其他例子包括Math对象和Date对象,它们分别提供了许多非常有用的方法供人们与数值和日期值打交道。例如,Math对象的round方法可以把十进制数值舍入为一个与之最接近的整数:

Date对象可以用来存储和检索与一个特定的日期和时间有关的信息。在创建Date对象的新实例时,JavaScript解释器将自动地使用当前日期和时间对它进行初始化:

Date对象提供了getDay()、getHours()、getMonth()等一系列方法,以供人们用来检索与特定日期有关的各种信息。例如,getDay()方法可以告诉我们给定日期是星期几:

在编写JavaScript脚本时,内建对象可以帮助我们快速、简单地完成许多任务。

2.9.2 宿主对象

除了各种JavaScript内建对象,我们还可以在JavaScript脚本里使用其他一些已经预先定义好的对象。后者不是由JavaScript语言本身而是由它的运行环境提供的。具体到Web应用,这个环境就是各种Web浏览器。由Web浏览器提供的预定义对象被称为宿主对象(host object)。

宿主对象主要包括Form、Image和Element。我们可以通过这些对象获得关于某给定网页上的表单、图像和各种表单元素的信息。

虽然宿主对象很有用,但本书没有收录任何这方面的例子。因为还有一种对象可以用来获得关于某给定网页上的任何一个元素的信息,它就是document对象。在本书的后续内容里,我们将向大家介绍许多隶属于document对象的属性和方法。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论