- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 4 章 JavaScript 基于对象编程
JavaScript 脚本是基于对象(Object-based )的编程语言,通过对象的组织层次来访问并
给对象施以相应的操作方法,可大大简化JavaScript 程序的设计,并提供直观、模块化的方
式进行脚本程序开发。本章主要介绍JavaScript 的基于对象编程、DOM 的模型层次以及有
关对象的基本概念等,并引导读者创建和使用自定义的对象。
4.1 面向对象编程与基于对象编程
在软件编程术语中,存在两个类似的概念:面对对象编程(Object Oriented Programming :
OPP )和基于对象编程(Object-based Programming ),它们在对象创建、对象组织层次、代
码封装和复用等方面存在较大的差异。
在了解它们之间差异之前,先来了解对象的概念。
4.1.1 什么是对象
对象是客观世界存在的人、事和物体等实体。现实生活中存在很多的对象,比如猫、自
行车等。不难发现它们有两个共同特征:都有状态和行为。比如猫有自己的状态(名字、颜
色、饥饿与否等)和行为(爬树、抓老鼠等)。自行车也有自己的状态(档位、速度等)和
行为(刹车、加速、减速、改变档位等)。若以自然人为例,构造一个对象,可以用图 4.1
来表示,其中Attribute 表示对象状态,Method 表示对象行为。
图4.1 以自然人构造的对象
在软件世界也存在对象,可定义为相关变量和方法的软件集。主要由两部分组成:
一组包含各种类型数据的属性
允许对属性中的数据进行操作且有相关方法
以HTML 文档中的document 作为一个对象,如图4.2 所示。
图4.2 以HTML 文档中的document 构造的对象
综上所述,凡是能够提取一定度量数据并能通过某种途径对度量数据实施操作的客观存
在都可以构成一个对象,且用属性来描述对象的状态,使用方法和事件来处理对象的各种行
为。
属性:用来描述对象的状态。通过定义属性值,可以改变对象的状态。如图4.1 中,
可以定义字符串HungryOrNot 来表示该自然人肚子的状态,HungryOrNot 成为自然
人的某个属性;
方法:由于对象行为的复杂性,对象的某些行为可用通用的代码来处理,这些通用
的代码称为方法。如图4.1 中,可以定义方法Eat( )来处理自然人肚子很饿的情况,
Eat( )成为自然人的某个方法;
事件:由于对象行为的复杂性,对象的某些行为不能使用通用的代码来处理,需要
用户根据实际情况爱编写处理该行为的代码,该代码称为事件。在图4.1 中,可以
定义事件DrinkBeforeEat( )来处理自然人肚子很饿同时嘴巴很渴需要先喝水后进食
的情况。
了解了什么是对象,下面来看看什么是面向对象编程。
4.1.2 面向对象编程
面向对象编程(OPP )是一种计算机编程架构,其基本原则:计算机程序由单个能够起
到子程序作用的单元或对象组合而成。具有三个最基本的特点:重用性、灵活性和扩展性。
这种方法将软件程序的每个元素构成对象,同时对象的类型、属性和描述对象的方法。为了
实现整体操作,每个对象都能够接收信息、处理数据和向其它对象发送信息。
面向对象编程主要包含有以下重要的概念:
1.继承
允许在现存的组件基础上创建子组件,典型地说就是用类来对组件进行分组,而且还可
以定义新类(子类)为现存的类(父类)的扩展,子类继承了父类的全部属性、方法和事件
而不必重新定义;同时通过扩展,子类可以获得专属自己的属性、方法和事件(不影响父类
的属性、方法和事件等),这样就可以将所有类拓扑成树形或网状结构。以动物“虎”类为
例,拓扑成的树状结构如图4.3 所示。
图4.3 通过继承形成的树形结构
其中灰色框内为“虎”科共有的属性和方法,在生成子类的同时被子类继承,白色长方
形框内的为经子类扩展的而特有的属性和方法,同时子类对父类的扩展并不影响父类的任何
属性、方法和事件。
2.封装
封装就是将对象的实现过程通过函数等方式封装起来,使用户只能通过对象提供的属
文档评论(0)