版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章 JavaScript中的内置对象JavaScript语言不像Java语言和C+语言支持真正的面向对象编程,JavaScript语言的使用并不依赖于对象。JavaScript中的对象是由函数创建的,用来创建对象的函数也称为构造函数或类型。通常一个对象所对应的类型为这个对象的类型。和其他面向对象语言相似,在JavaScript语言中使用new操作符来创建一个对象。本章内容包括:q JavaScript中的对象概述;q 字符串对象;q 数组对象;q 日期对象;q 数学对象。通过本章学习,读者可以掌握JavaScript中的字符串对象、数组对象、日期对象以及数学对象的使用方法。8.1 Java
2、Script中的对象JavaScript语言是一种面向对象的语言,因此可用面向对象的思想来设计JavaScript程序。一个对象通常对应于现实世界中的一个实体,这些实体封装了一些方法和属性,通过这些方法和属性来改变对象的状态及完成某项功能。8.1.1 JavaScript对象简介对象是整个面向对象程序设计的理论基础。对象可以理解为一种新型的变量,其保存着一些有用的数据。HTML文档中的大多数组件在内部浏览器对象模型中表现为对象。对象也是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,其不仅能表示具体的事物,还可以表示抽象的规则、计划或事件。对象具有状态,还有操作。对象一般用
3、数据值来描述其状态,用于改变对象的状态的操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。另外,对象可能既有内部数据和函数,也有外部数据和函数。内部数据和函数(私有的)处理操作屏幕的细节,而有效的外部数据和函数(公用的)让程序的其他部分将数据输出到屏幕。8.1.2 对象属性在JavaScript中,编程者可以调用对象变量的属性。比如说人是一个对象,那么人的身高、重量、籍贯等就是人的属性,换句话说就是对象的属性。例如,有一个公用属性叫“obj”,用来存放要显示的图像名字。设置对象属性的方法就像设置一个变量一样:show.obj=”JPG/xp.jpg”8.1.3
4、对象的方法一个对象的内部函数叫做方法。就拿人举例,人的工作、学习、打球、爬山是人可以实现的方法,对象的方法与此类似。对象的内部方法叫做私有方法。在对象外部的有效方法叫做公用方法。对象的内部方法在对象外部不可存取,只有对象的内部语句部分可以用对象的私有方法和变量。8.1.4 面向对象特征面向对象有一些特征,如对象的唯一性,抽象性,继承性,多态性等。下面将简单介绍这些特征。1对象的唯一性每个对象有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,其标识都不改变,不同的对象不能有相同的标识。如,人在社会上有一个唯一的身份证号与之对应,这可称为人的唯一标识。2抽象性将具有一致的数据
5、结构和行为的对象抽象成类。一个类就是这样一种抽象,其反应了与应用有关的重要性质,忽略其他内容。如,鸡、狗、猪、羊等就是动物,它们具有动物的一些特性。3继承性继承是子类共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现类的时候,可以在一个已经存在的类基础上来进行,把该已经存在的类所定义的内容作为自己的内容,并加上若干新内容。q 在类层次中,子类只继承一个父类数据结构和方法,则称为单重继承。q 在类层次中,子类继承多个父类的数据结构和方法,则成为多重继承。如,动物有高度、重量,可以跑,跳等动作,人也继承了动物的这些特征和动作。4多态性面向对象的语言多数都支持多态性。从本质上讲,多态性
6、可以引用多个对象。通过多态性,程序员可以向一个对象发送消息来完成一系列操作,而不用关心软件系统是如何实现这些操作的。多态性是指相同的操作和函数、过程可作用于多种类型的对象上并可以获得不同结果。不同对象接受相同消息可以产生不同结果。这种性质可以称为多态性。多态性增加了程序的灵活性和可重用性。如,定义两个方法,其中一个方法是对输入的整数进行运算,并输出结果,另外一个方法是对输入的浮点数进行运算,并输出结果。实际程序运行时,如果用户输入的是整数,就调用对整数进行操作的方法,否则就调用对浮点数进行操作的方法,这就可以理解为面向对象的多态性。8.1.5 面向对象的要素封装性和共享性都是面向对象的要素,下
7、文将简单介绍这些要素。1封装性封装性是保证程序具有优良的模块性的基础。面向对象的类是封装良好的模块,类定义将说明与实现显示分开,其内部实现按其具体定义的作用域提供保护。如,要完成事件A,需要先完成步骤1,再完成步骤2,再完成步骤3,经过函数封装,调用者无需知道其内部细节。2共享性面向对象编程在不同级别上促进了共享。q 同一类中的共享是指类中的对象具有相同的数据结构。这些对象之间是结构、行为特征的共享关系。q 同一应用中的共享是指存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。不同应用中的共享是指可以通过类库这种机制和结构来实现不同应用中的信息共享。如,C
8、+语言中定义的头文件,可以在任意的c+文件中调用。8.2 字符串对象字符串是用引号括起来的任何文本。其中,引号可以是单引号也可以是双引号。JavaScript语言对字符串内的字符数目没有限制,但大多数浏览器限制JavaScript语句长度不超过255个字符。本节将详细讲解字符串对象。8.2.1 字符串前面几章已经介绍了如何定义初始化变量,下面来简要介绍常见的字符串的赋值和连接的方法。1字符串的赋值把一个字符串赋值给一个变量一般有两种方法。前面介绍了一种最简单的方法:var 字符串名=”字符串的内容”;从Navigator 3.0版本和Internet Explorer4.0版本开始,JavaS
9、cript就引入了一个更规范的语法来建立一个字符串对象。该方法包括一个new关键词和一个构造器函数:var 字符串名= new String(”字符串的内容”);代码说明:q var是定义变量所必须的;q 使用new关键字来创建字符串;q String里面是字符串的内容,注意使用双引号。2字符串的连接把两个字符串组成一个字符串成为字符串的连接。JavaScript语言提供了加号运算符来构造一个较长的运算符。【示例8-1】演示两个字符串的连接。var string1=”hello”;/定义初始化字符串string1=string1+”world”;/两个字符串的连接string1=string1
10、+”I am abc”;/两个字符串的连接最后字符串string1的值为:helloworldI am abc。另外还有一种称为add-by-value运算符(加等于运算符),提供另外一种字符串连接的方法。【示例8-2】演示add-by-value运算符的使用。var string2=”hello”;/定义初始化字符串string2+=”world”;/两个字符串的连接string2+=”I am abc”;/两个字符串的连接String2的值为:helloworldI am abc。同样,这两种方法也可以组合起来操作:var string3=”hell0”;string3=string3+”
11、world”+”I am abc”;String3的值为:helloworldI am abc。8.2.2 判断字符串对象的构造器属性构造器(constructor)属性用来表示创建对象的函数。constructor属性是所有具有prototype(原型)的对象成员。constructor属性保存了对构造特定对象实例的函数的引用。【示例8-3】演示使用constructor属性。x=new String(“Hi”);if(x.constructor= =String)/处理语句(条件为真)代码说明:q x.constructor返回的是x的对象属性。8.2.3 获取字符串对象的长度长度(len
12、gth)是最常用的字符串对象的属性。如果要得到一个字符串的长度,可以调用它的长度属性:string.lengthlength属性是一个整数,其值是一个字符串包含字符的数目。【示例8-4】获取字符串的长度属性。var string1=”look”;result1=string1.length;result2=”hello world”.length;result3=”.length;代码说明:q result1是“look”的长度为4;q result2是“hello world”的长度为11;q result3是“”的长度为0。注意:空格和标点符号都作为字符计数,而换行及tab在内的转义字符都
13、作为一个字符来对待。8.2.4 创建和使用字符串对象的原型JavaScript语言中对象的prototype(原型)属性是用来返回对象原型的引用。原型可以作为编程者的模板,为新建立的对象添加一些新属性及方法。原型也跟Word里的格式刷一样,使用格式刷可以将字符串刷成所需要的字体格式。【示例8-5】演示如何创建和使用原型。 原型使用 /*插入JavaScript代码*/ function makeitgreen()/创建makeitgreen函数 return +this.tostring()+/将字符串的颜色变为绿色 totype.gree=makeitgreen/调用函数
14、赋值给原型 document.write(hello world!.gree();/调用原型转换字符串 代码说明:q 当对象的方法被调用时,函数makeitgreen返回对象的字符串,关键字this指向调用该方法的对象,这样就可以将其转换为改变颜色之后的字符串作为返回值;q 程序中,像调用对象已有方法一样调用了原型方法将字符串转换为HTML标记;q 程序中字符串的颜色变为绿色。该程序运行结果如图8-1所示。图8-1 创建和使用原型8.2.5 字符串对象的大小写转化所有JavaScript语言的全局变量中,字符串对象有最多的关联方法。为使用字符串方法,被作用的字符串应该是引用的一部分,后面跟方法
15、名。所有的方法返回一个指定类型的值。因此,如果返回值没有直接用作方法和函数调用的参数,返回值必须由变量来调用。toUpperCase()方法用来转换字符串为大写字母,toLowerCase()方法用来转换字符串为小写字母。【示例8-6】将字符串“helloworld”转换为大写和小写。var string1=”hello world”;/定义并初始化字符串var result1=string1.toUpperCase();/转换字符串为大写字母var result2=string1.toLowerCase();/转换字符串为小写字母在Internet中,经常遇到大小写敏感问题。读者可以采用这种
16、方法将所有字符串都转换成大写或小写,也可以将大小写混排的字符串都转换成统一的格式。说明:字符串对象中的toLowerCase()方法和toUpperCase()方法也可以把字符串转换为小写和大写。8.2.6 获得字符串对象的子串JavaScript语言主要用charAt()方法可以从字符串指定位置获取单个字符串,该方法只有一个要抽取字符的字符串。但是string.substring()方法可以抽取一个连续的字符串,但要提供其在原串中的起始和终止位置作为其参数。被抽取子串的字符串出现在所引用的方法名左边,两个参数定义了起始和终止索引值。【示例8-7】演示charAt()方法,将“hello world”提取第3到7个字符。var string2=”hello world”;var result2=string2.substring(3,7);该段代码所得result2的结果是”llo w”。注意:使用string.substring()方法抽取的字符串从起始位置(含起始位置)到终止位置(不含中止位置)之间的字符。8.2.7 替换及检索字符串JavaScript语言使用stirng.replace()方法用来替换字符串。一般来说,查找和替换操作要求三个要素:第一要素是查找替换操作对象的主字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年汽车维修保养合同8篇
- 2024年股权代持协议书样本
- 2024年艾诺斯霍克蓄电池SB120销售协议3篇
- 2024数据保密与网络安全防护服务合同3篇
- 2024某电商平台与物流公司关于仓储配送服务之合作协议
- 《给排水培训》课件
- 2024年设备分期付款销售合同6篇
- 供应链行业助理工作总结
- 2025年度U8+企业版合同管理系统全面升级协议3篇
- 2025版驾校与交通安全组织驾驶安全宣传合作协议3篇
- 期末检测卷(试题)-2024-2025学年三年级上册统编版语文
- 膝关节骨性关节炎阶梯治疗
- 2024-2030年中国工业真空系统行业市场发展趋势与前景展望战略分析报告
- 新疆第十三师新星经济技术开发区管委会招聘笔试题库2024
- 2024-2030年中国毫米波行业市场发展趋势与前景展望战略分析报告
- 2024年全国初中数学竞赛试题含答案
- 软装公司运营计划书
- 中医临床基础研究设计方法与进展智慧树知到期末考试答案2024年
- 手术室急救设备
- 投标技术服务和质保期服务计划
- 重庆市江津区2023年数学九年级上册期末考试试题含解析
评论
0/150
提交评论