3.3 JavaScript对象
对象是对客观事物的抽象。属性是对象的状态,方法是对象的动作。对象可以通过对事件的响应,实现方法,改变对象的属性。例如,将气球看成一个对象,该对象具有颜色、体积、位置等信息;该对象有放气方法、上升方法;通过响应刺破事件,实现放气方法,改变体积属性;通过响应放手事件,实现上升方法,改变位置属性。
JavaScript脚本语言中,所有的数据类型都可以看作对象,对象就是具有属性和方法的特殊数据类型。
访问对象属性的语法是:
其中,ObjectName是对象名,PropertyName是属性名。
调用对象方法的语法是:
其中,MethodName是方法名,parameter是参数列表,方括号表示参数为可选项。
JavaScript提供了许多内置对象,供编程者使用。
例如,执行下列语句:
x值为12。
3.3.1 内置对象
JavaScript的内置对象包括String、Number、Boolean、Array、Object、Function、Date、Math等。这里重点介绍String、Array、Date和Math对象。
1.String对象
创建String对象的语法是:
其中,s是String对象的值。
String对象的常用属性是length,用于返回字符串的长度。
String对象的常用方法见表3-6。
表3-6 String对象常用方法
注意:若指定起始位置的start是负数,则表明从字符串结尾开始索引。参数中的中括号,表示其中的参数可选,以下同。
字符串对象还有很多可以使字符串以不同格式显示的方法,此处不再一一介绍。
String对象的使用示例见【例3-11】。
【例3-11】 String对象示例。
【例3-11】的运行结果如图3-8所示。
图3-8 【例3-11】运行结果
2.Array对象
创建Array对象的语法是:
或:
其中,length是Array对象的长度;element1,element2,…,elementN是Array对象的元素列表。
Array对象的常用属性是length,用于返回数组的长度。
Array对象的常用方法见表3-7。
表3-7 Array对象常用方法
Array对象的使用示例见【例3-12】。
【例3-12】 Array对象示例。
【例3-12】的运行结果如图3-9所示。
图3-9 【例3-12】运行结果
3.Date对象
JavaScript提供的Date对象,可以调用系统日期与时间,并可以进行方便的处理。创建Date对象的语法是:
Date对象的常用方法见表3-8。
表3-8 Date对象常用方法
(续)
Date对象的使用示例见【例3-13】。
【例3-13】 Date对象示例。
【例3-13】的运行结果如图3-10所示。
图3-10 【例3-13】运行结果
4.Math对象
JavaScript提供的Math对象,提供了丰富的数学处理工具。Math对象无需创建,可以直接使用其属性和方法。
常用的Math对象属性见表3-9。
表3-9 Math对象常见属性
常用的Math对象方法见表3-10。
表3-10 Math对象常用方法
例如,使用Math对象随机生成一个骰子数,具体代码见【例3-14】。
【例3-14】 Math对象示例。
运行结果是生成一个1~6之间的随机正整数。
3.3.2 自定义对象
JavaScript除了许多内置对象外,也允许用户自己创建对象。创建对象有两种方法。
方法一,直接创建对象实例,语法规则为:
例如,创建一个名为“porson”的自定义对象,对象属性有“name”和“age”,如下所示:
或者按如下语法规则创建自定义对象。
上例自定义对象的创建语句,等效于如下语句:
方法二,使用函数构造对象,语法规则为:
例如,创建一个名为“square”的自定义对象,具有属性“bianchang”,具有方法“perimeter”和“area”,见【例3-15】。
【例3-15】 自定义对象示例。
【例3-15】的运行结果如图3-11所示。
图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对象常见属性
Window对象的常用方法见表3-12。
表3-12 Window对象常见方法
Window对象的使用示例见【例3-16】。
【例3-16】 Window对象示例。
运行上例,单击窗口中的“打开我的窗口”按钮,源窗口显示源窗口大小,同时弹出一个名为“newWindow”的新窗口,并出现一个提示框,如图3-12所示。
单击提示框的“确定”按钮,则关闭新窗口;单击“取消”按钮,则弹出一个提示延时3秒关闭新窗口的弹窗,如图3-13所示。
图3-12 运行【例3-17】单击“打开我的窗口”按钮后结果
图3-13 单击图3-14中“取消”按钮弹出对话框
单击“确定”,3秒后新窗口关闭。
2.Location对象
Location对象是Window对象的一个重要属性,包含当前URL的信息。可通过window.location访问,也可不使用window前缀直接访问。
Location对象常用的属性见表3-13。
表3-13 Location对象常用属性
(续)
Location对象常用的方法见表3-14。
表3-14 Location对象常用方法
例如,利用Location对象加载百度页面,见【例3-17】。
【例3-17】 Location对象示例。
运行【例3-17】代码后,单击页面“载入文档”按钮,即可跳转至百度首页。
3.Navigator对象
Navigator对象包含有关访问者浏览器的信息,可以用它来查询一些关于运行当前脚本的应用程序的相关信息。但由于Navigator数据可能被浏览器使用者修改,且一些浏览器对测试站点会识别错误,所以Navigator对象一般不被用于检测浏览器版本。Navigator对象在使用时也可不使用window前缀。
Navigator对象的常用属性见表3-15。
表3-15 Navigator对象常用属性
Navigator对象的使用示例见【例3-18】。
【例3-18】 Navigator对象示例。
【例3-18】运行结果见图3-14。
图3-14 【例3-18】运行结果
4.History对象
History对象包含浏览器的历史信息。为了保护隐私,JavaScript在访问该对象时做了一些限制。在使用History对象时,也可不使用window前缀。
History对象常用的方法如下。
表3-16 History对象常用方法
此处不再赘述举例。
5.Screen对象
Screen对象包含有关用户屏幕的信息,也可不使用window前缀。Screen对象的常用属性见表3-17。
表3-17 Screen对象常用属性
Screen对象使用示例见【例3-19】。
【例3-19】 Screen对象示例。
【例3-19】运行结果如图3-15所示。
图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所示。
图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对象的常用方法
Document对象也是Window对象的一个重要属性,可以通过window.document访问,也可直接通过document访问。
3.Element对象
在DOM中,Element对象表示HTML元素。对HTML元素、属性和内容的操作,可以通过使用Element对象属性和方法来实现。
常用的Element对象属性见表3-19。
表3-19 Element对象的常用属性
常用的Element对象方法见表3-20。
表3-20 Element对象的常用方法
对HTML元素及内容的操作示例见【例3-20】。
【例3-20】 DOM元素及内容示例。
【例3-20】的运行结果如图3-17所示。
图3-17 【例3-20】运行结果
对HTML属性及样式的操作示例见【例3-21】。
【例3-21】 DOM属性及样式示例。
运行【例3-21】,如图3-18所示。单击“改变样式”和“改变属性”按钮,结果如图3-19所示。
图3-18 运行【例3-21】
图3-19 单击“改变样式”和“改变属性”按钮后