




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章JavaScript中的继承 在上一章中 已经学习了Document对象的属性和方法 在实际开发中 大量的JavaScript方法让初学者非常难以学习 有什么方法可以迅速学习和掌握JavaScript呢 在本章中 将要学习如何使用JavaScript面向对象的特征 使开发者容易学习 掌握JavaScript技术 本章5 1节 将向读者讲解基本的JavaScript面向对象的特征 自5 2节至5 4节 将向读者讲解JavaScript高级面向对象的特征 继承 通过本章的学习 相信聪明的读者一定可以掌握面向对象的JavaScript开发技术 5 1JavaScript中的对象 编程语言发展至今 基本上都是面向对象的语言 面向对象的语言十分优雅 便于学习和掌握 可以多次重用 在JavaScript中 大量使用内置对象 实际上 开发者可以利用JavaScript面向对象的特征 定义类 对象 从而进行面向对象开发 5 1 1什么是对象 在JavaScript中 没有明确的对类 对象等概念定义 但是JavaScript用其自己的方式实现了这些概念 一般面向对象的语言里 对象被认为是通过类的构造函数进行实例化的 即类的实例 所有的对象都是由类进行定义的 具有类中定义各种属性和方法的实例 在JavaScript中 这些特征都得以实现 并且在JavaScript中 构造函数依然可以自定义 并且可以进行重载 在JavaScript中的对象被认为是特性的集合 特性可以是函数 也可以是普通的成员变量或其他类的引用 如果特性是1个函数 那么该函数被认为是当前对象的方法 普通的成员变量被认为是对象的属性 5 1 2声明及实例化对象 JavaScript中 声明对象的可以通过var关键字进行 示例代码如下 varobj JavaScript与其他面向对象的语言一样 也定义了new关键字作为实例化对象的操作符 实例化1个对象可以通过以下的代码实现 varobj1 newObject 在JavaScript中 对象的类型由实例化的类型决定 5 1 3对象的引用及销毁 在JavaScript中 变量可以存储原始值和引用值 原始值被认为存储在栈中 拥有固定大小 可以直接操纵 引用值被认为存储在堆中 引用值仅仅是内存指针即实际对象的引用 实际上在JavaScript中 有5种类型的对象被认为是以原始值存储的 undefined boolean number string object5个类的对象大小固定 使用栈分配内存 故而被认为是原始值 在这里要特别指出的是null null被认为是指向空object对象的引用 当运行以下代码时 结果为object functioncreateObject varobj null alert typeof obj 5 1 4绑定机制 绑定机制是语言实现的关键 绑定机制是指将对象类型与对象实例紧密结合 通知编译器当前对象具有什么方法和属性 绑定机制有两种 早期绑定和晚期绑定 早期绑定 早期绑定是开发者最熟悉和使用最多的一种绑定方式 早期绑定具有这样的特点 对象声明时 对象的属性和方法就被编译成为对象的一部分 对象的类型一旦确定就不能进行随意的更改 对象类型的变换必须遵循特定的规则 在Java C VB NET这样的强类型语言中 都采用了早期绑定的方式 晚期绑定 在一些弱类型的语言中 晚期绑定被大量使用 晚期绑定具有这样的特点 对象声明时 对象的属性和方法并没有编译为对象的一部分 而是在运行期动态检查对象是否具有相应的属性和方法 在JavaScript等弱类型的语言中 都采用了晚期绑定的方式 晚期绑定导致这些弱类型语言不能进行实时报错 5 1 5对象分类 在JavaScript中 将对象进行了分类 具有3种类型的对象 本地对象 内置对象 宿主对象 本地对象是指不依赖浏览器实现 由JavaScript内部提供的内置类型 本地对象包括以下类型 如表所示 本地对象类型列表 5 1 6作用域 静态作用域 this关键字 作用域的概念即变量的作用范围 在面向对象的语言中作用域的概念尤为重要 C VB NET Java都提供了private public protectetd friend virturl等关键字进行作用域的约束 在JavaScript中只有一种作用域即公有作用域 在JavaScript中 所有对象的所有属性和方法都默认为公有的 静态作用域也是面向对象开发中常见的作用域 静态作用域是指作用域适用于类 即所有对象都具有的 但是在JavaScript中 不能使用static shared等关键字定义静态作用域 在JavaScript中 使用函数充当静态属性 来定义静态作用域 5 1 7定义类的方式 工厂方式 构造函数 原型方式 混合方式 在面向对象的开发中 类被认为是对象的模板 在JavaScript中 可以由开发者自定义类及类的方法和属性 1 工厂方式2 构造函数3 原型方式4 混合方式在对象初始化完成前 Student initialized并没有被声明或实例化 所以Student initialized一定是undefined 那么就一定会执行if中的代码 If中的代码让对象的ShowSkill函数属性成为1个函数的引用 这样就实现了方法被所有对象公有 5 1 8实例以及实例方式使用的注意事项 在面向对象的JavaScript开发中 目前使用最广泛的是混合方式 动态原型方式也能够实现面向对象的基本特征 并且越来越流行 在开发中 可以采用这两种方式中的任何一种 尽量不要单独使用工厂方式 构造函数方式 原型方式的任何一种 否则会给开发带来不可预期的问题 5 2继承方式以及实现 在上节中 学习了如何创建自定义对象 面向对象具有四大特征 继承 封装 抽象 多态 而在面向对象的特征中 最重要的就是继承 其他特征都是为继承服务的 乃至于当界定1个语言是否是面向对象的语言时 首先需要检查该语言是否支持继承 继承是面向对象开发中使用最多的特征 通过继承可以无限扩展父类 即父类 的功能 提高代码的重用性 便于维护 本节中 将要学习JavaScript面向对象的重要特征即继承 5 2 1继承方式以及实现 继承方式在JavaScript中 也有很多种方式 继承实现有多种方式 主要是因为JavaScript中对于继承没有明确的规范 所有继承实现的细节 并不是由解释器定制的 而是掌握在开发者的手中 1 伪装继承方式2 多重继承3 Function对象4 原型链 5 2 2继承的重要实例 在实际开发中 需要经常去定义实体 或者进行接口进行继承 在这个实例中 展示在开发中如何定义父类 子类继承父类并扩展父类的方法 实例中 首先定义汽车父类 汽车具有什么特征呢 总结如下 具有引擎 引擎型号不一 可以驾驶 使用燃料 对驾驶者的驾驶资格要求各不相同 如驾驶者具有的驾驶执照等级要求 5 3小结 本章学习了在JavaScript开发中如何实现面向对象特征的开发 首先从创建自定义类开始讲解 并讲解了一些在JavaScript中常用的类 讲解了原型方式 工厂方式 构造函数 混合方式创建对象的方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清朝民族关系课件
- 2025年广西贺州市事业单位工勤技能考试考试题库及参考答案
- 2025年宠物殡葬骨灰饰品设计师面试模拟题及答案
- 医疗废物培训课件内容
- 2025年度景区专用观光车辆租赁及综合旅游服务合同
- 2025年网络公司间技术知识产权共享及数据保密合同
- 2025年度食品流通环节安全监管与风险评估委托合同
- 2025年新能源行业并购项目税务优化与合规管理合同
- 2025年北京车牌租赁代理业务合作协议书
- 2025年度跨境电商佣金代理及物流配套服务合作协议
- 《环形件模锻实验》课件
- DB37T 5059-2016 工程建设地下水控制技术规范
- 智慧安监大数据云平台建设方案
- 商务英语词汇大全
- 人教PEP版(一起)(2024)一年级上册英语全册教案(单元整体教学设计)
- 护士职业防护
- 酒店公共卫生事件应急预案
- DL∕T 1664-2016 电能计量装置现场检验规程
- DL∕T 1455-2015 电力系统控制类软件安全性及其测评技术要求
- 临床护理“三基”应知应会汇编
- 家委会给老师的感谢信
评论
0/150
提交评论