Web应用开发技术与案例教程
上QQ阅读APP看书,第一时间看更新

3.3 JavaScript对象

对象是对客观事物的抽象。属性是对象的状态,方法是对象的动作。对象可以通过对事件的响应,实现方法,改变对象的属性。例如,将气球看成一个对象,该对象具有颜色、体积、位置等信息;该对象有放气方法、上升方法;通过响应刺破事件,实现放气方法,改变体积属性;通过响应放手事件,实现上升方法,改变位置属性。

JavaScript脚本语言中,所有的数据类型都可以看作对象,对象就是具有属性和方法的特殊数据类型。

访问对象属性的语法是:

978-7-111-63649-6-Chapter03-53.jpg

其中,ObjectName是对象名,PropertyName是属性名。

调用对象方法的语法是:

978-7-111-63649-6-Chapter03-54.jpg

其中,MethodName是方法名,parameter是参数列表,方括号表示参数为可选项。

JavaScript提供了许多内置对象,供编程者使用。

例如,执行下列语句:

978-7-111-63649-6-Chapter03-55.jpg

x值为12。

3.3.1 内置对象

JavaScript的内置对象包括String、Number、Boolean、Array、Object、Function、Date、Math等。这里重点介绍String、Array、Date和Math对象。

1.String对象

创建String对象的语法是:

978-7-111-63649-6-Chapter03-56.jpg

其中,s是String对象的值。

String对象的常用属性是length,用于返回字符串的长度。

String对象的常用方法见表3-6。

表3-6 String对象常用方法

978-7-111-63649-6-Chapter03-57.jpg

注意:若指定起始位置的start是负数,则表明从字符串结尾开始索引。参数中的中括号,表示其中的参数可选,以下同。

字符串对象还有很多可以使字符串以不同格式显示的方法,此处不再一一介绍。

String对象的使用示例见【例3-11】。

【例3-11】 String对象示例。

978-7-111-63649-6-Chapter03-58.jpg

【例3-11】的运行结果如图3-8所示。

978-7-111-63649-6-Chapter03-59.jpg

图3-8 【例3-11】运行结果

2.Array对象

创建Array对象的语法是:

978-7-111-63649-6-Chapter03-60.jpg

或:

978-7-111-63649-6-Chapter03-61.jpg

其中,length是Array对象的长度;element1,element2,…,elementN是Array对象的元素列表。

Array对象的常用属性是length,用于返回数组的长度。

Array对象的常用方法见表3-7。

表3-7 Array对象常用方法

978-7-111-63649-6-Chapter03-62.jpg

Array对象的使用示例见【例3-12】。

【例3-12】 Array对象示例。

978-7-111-63649-6-Chapter03-63.jpg

978-7-111-63649-6-Chapter03-64.jpg

【例3-12】的运行结果如图3-9所示。

978-7-111-63649-6-Chapter03-65.jpg

图3-9 【例3-12】运行结果

3.Date对象

JavaScript提供的Date对象,可以调用系统日期与时间,并可以进行方便的处理。创建Date对象的语法是:

978-7-111-63649-6-Chapter03-66.jpg

Date对象的常用方法见表3-8。

表3-8 Date对象常用方法

978-7-111-63649-6-Chapter03-67.jpg

(续)

978-7-111-63649-6-Chapter03-68.jpg

Date对象的使用示例见【例3-13】。

【例3-13】 Date对象示例。

978-7-111-63649-6-Chapter03-69.jpg

【例3-13】的运行结果如图3-10所示。

978-7-111-63649-6-Chapter03-70.jpg

图3-10 【例3-13】运行结果

4.Math对象

JavaScript提供的Math对象,提供了丰富的数学处理工具。Math对象无需创建,可以直接使用其属性和方法。

常用的Math对象属性见表3-9。

表3-9 Math对象常见属性

978-7-111-63649-6-Chapter03-71.jpg

常用的Math对象方法见表3-10。

表3-10 Math对象常用方法

978-7-111-63649-6-Chapter03-72.jpg

例如,使用Math对象随机生成一个骰子数,具体代码见【例3-14】。

例3-14】 Math对象示例。

978-7-111-63649-6-Chapter03-73.jpg

运行结果是生成一个1~6之间的随机正整数。

3.3.2 自定义对象

JavaScript除了许多内置对象外,也允许用户自己创建对象。创建对象有两种方法。

方法一,直接创建对象实例,语法规则为:

978-7-111-63649-6-Chapter03-74.jpg

例如,创建一个名为“porson”的自定义对象,对象属性有“name”和“age”,如下所示:

978-7-111-63649-6-Chapter03-75.jpg

或者按如下语法规则创建自定义对象。

978-7-111-63649-6-Chapter03-76.jpg

上例自定义对象的创建语句,等效于如下语句:

978-7-111-63649-6-Chapter03-77.jpg

方法二,使用函数构造对象,语法规则为:

978-7-111-63649-6-Chapter03-78.jpg

978-7-111-63649-6-Chapter03-79.jpg

例如,创建一个名为“square”的自定义对象,具有属性“bianchang”,具有方法“perimeter”和“area”,见【例3-15】。

【例3-15】 自定义对象示例。

978-7-111-63649-6-Chapter03-80.jpg

978-7-111-63649-6-Chapter03-81.jpg

【例3-15】的运行结果如图3-11所示。

978-7-111-63649-6-Chapter03-82.jpg

图3-11 【例3-15】运行结果

3.3.3 BOM对象

JavaScript脚本语言的最初目的就是能够在浏览器中运行,实现用户与浏览器的简单交互,浏览器对象模型(Browser Object Model)使得JavaScript与浏览器有了“对话”能力。

BOM对象的顶级对象是Window对象,Window对象的属性中的Location、Navigation、History、Screen以及Document属性,它们本身也是对象。

1.Window对象

Window对象是BOM的核心,Window对象指当前的浏览器窗口,包含浏览器窗口的属性与方法。所有JavaScript的全局对象、函数及变量均会自动成为Window对象的成员,全局变量成为Window对象的属性,全局函数成为Window对象的方法。

Window对象的其他常用属性见表3-11。

表3-11 Window对象常见属性

978-7-111-63649-6-Chapter03-83.jpg

Window对象的常用方法见表3-12。

表3-12 Window对象常见方法

978-7-111-63649-6-Chapter03-84.jpg

Window对象的使用示例见【例3-16】。

【例3-16】 Window对象示例。

978-7-111-63649-6-Chapter03-85.jpg

978-7-111-63649-6-Chapter03-86.jpg

运行上例,单击窗口中的“打开我的窗口”按钮,源窗口显示源窗口大小,同时弹出一个名为“newWindow”的新窗口,并出现一个提示框,如图3-12所示。

单击提示框的“确定”按钮,则关闭新窗口;单击“取消”按钮,则弹出一个提示延时3秒关闭新窗口的弹窗,如图3-13所示。

978-7-111-63649-6-Chapter03-87.jpg

图3-12 运行【例3-17】单击“打开我的窗口”按钮后结果

978-7-111-63649-6-Chapter03-88.jpg

图3-13 单击图3-14中“取消”按钮弹出对话框

单击“确定”,3秒后新窗口关闭。

2.Location对象

Location对象是Window对象的一个重要属性,包含当前URL的信息。可通过window.location访问,也可不使用window前缀直接访问。

Location对象常用的属性见表3-13。

表3-13 Location对象常用属性

978-7-111-63649-6-Chapter03-89.jpg

(续)

978-7-111-63649-6-Chapter03-90.jpg

Location对象常用的方法见表3-14。

表3-14 Location对象常用方法

978-7-111-63649-6-Chapter03-91.jpg

例如,利用Location对象加载百度页面,见【例3-17】。

【例3-17】 Location对象示例。

978-7-111-63649-6-Chapter03-92.jpg

运行【例3-17】代码后,单击页面“载入文档”按钮,即可跳转至百度首页。

3.Navigator对象

Navigator对象包含有关访问者浏览器的信息,可以用它来查询一些关于运行当前脚本的应用程序的相关信息。但由于Navigator数据可能被浏览器使用者修改,且一些浏览器对测试站点会识别错误,所以Navigator对象一般不被用于检测浏览器版本。Navigator对象在使用时也可不使用window前缀。

Navigator对象的常用属性见表3-15。

表3-15 Navigator对象常用属性

978-7-111-63649-6-Chapter03-93.jpg

Navigator对象的使用示例见【例3-18】。

【例3-18】 Navigator对象示例。

978-7-111-63649-6-Chapter03-94.jpg

【例3-18】运行结果见图3-14。

978-7-111-63649-6-Chapter03-95.jpg

图3-14 【例3-18】运行结果

4.History对象

History对象包含浏览器的历史信息。为了保护隐私,JavaScript在访问该对象时做了一些限制。在使用History对象时,也可不使用window前缀。

History对象常用的方法如下。

表3-16 History对象常用方法

978-7-111-63649-6-Chapter03-96.jpg

此处不再赘述举例。

5.Screen对象

Screen对象包含有关用户屏幕的信息,也可不使用window前缀。Screen对象的常用属性见表3-17。

表3-17 Screen对象常用属性

978-7-111-63649-6-Chapter03-97.jpg

Screen对象使用示例见【例3-19】。

【例3-19】 Screen对象示例。

978-7-111-63649-6-Chapter03-98.jpg

【例3-19】运行结果如图3-15所示。

978-7-111-63649-6-Chapter03-99.jpg

图3-15 【例3-19】运行结果

3.3.4 DOM对象

通过DOM(Document Object Model,文档对象模型)对象,可以获取、创建、删除HTML元素,改变HTML元素内容、属性与样式,并对HTML的事件做出反应。

1.DOM

浏览器在加载Web页面时会构造一个DOM。DOM是W3C的标准,它是与浏览器、平台、语言的接口,通过DOM可以访问页面其他的标准组件。

HTML DOM定义了所有HTML元素的对象和属性,以及访问它们的方法。通过HTML DOM,可以表示页面中的各个HTML元素,这些元素会被表示为不同的DOM对象。简而言之,HTML DOM是关于如何获取、修改、添加或删除HTML元素的标准。

根据W3C的HTML DOM标准,HTML文档中的所有内容都是节点。

● 整个文档是一个文档节点。

● 每个HTML元素是元素节点。

● HTML元素内的文本是文本节点。

● 每个HTML属性是属性节点。

● 注释是注释节点。

HTML DOM将HTML文档视作树结构,又被称为节点树。如图3-16所示。

978-7-111-63649-6-Chapter03-100.jpg

图3-16 HTML DOM树结构示例

HTML DOM节点树中的所有节点均可通过JavaScript进行访问,所有HTML元素(节点)均可被修改,也可以创建或删除节点。

节点树中的节点之间存在层级关系。父节点拥有子节点,有相同父节点的同级子节点被称为同胞(兄弟或姐妹)。在节点树中,顶端节点被称为根(Root),除根之外,每个节点都有父节点。一个节点可拥有任意数量的子节点。

DOM定义了访问和处理HTML文档结构与内容的方法。DOM中最重要的两个对象就是Document和Element。

2.Document对象

每一个载入浏览器的HTML文档都会成为Document对象,Document是HTML文档的根节点,通过Document对象可以实现对HTML文档所有元素的访问。Document对象的常用方法见表3-18。

表3-18 Document对象的常用方法

978-7-111-63649-6-Chapter03-101.jpg

Document对象也是Window对象的一个重要属性,可以通过window.document访问,也可直接通过document访问。

3.Element对象

在DOM中,Element对象表示HTML元素。对HTML元素、属性和内容的操作,可以通过使用Element对象属性和方法来实现。

常用的Element对象属性见表3-19。

表3-19 Element对象的常用属性

978-7-111-63649-6-Chapter03-102.jpg

常用的Element对象方法见表3-20。

表3-20 Element对象的常用方法

978-7-111-63649-6-Chapter03-103.jpg

对HTML元素及内容的操作示例见【例3-20】。

【例3-20】 DOM元素及内容示例。

978-7-111-63649-6-Chapter03-104.jpg

978-7-111-63649-6-Chapter03-105.jpg

【例3-20】的运行结果如图3-17所示。

978-7-111-63649-6-Chapter03-106.jpg

图3-17 【例3-20】运行结果

对HTML属性及样式的操作示例见【例3-21】。

【例3-21】 DOM属性及样式示例。

978-7-111-63649-6-Chapter03-107.jpg

978-7-111-63649-6-Chapter03-108.jpg

运行【例3-21】,如图3-18所示。单击“改变样式”和“改变属性”按钮,结果如图3-19所示。

978-7-111-63649-6-Chapter03-109.jpg

图3-18 运行【例3-21】

978-7-111-63649-6-Chapter03-110.jpg

图3-19 单击“改变样式”和“改变属性”按钮后