[整理]JavaScript的继承之类式继承
来源:互联网 发布:js new image 编辑:程序博客网 时间:2024/05/16 18:27
为了让Author继承Personal,必须手工将Author的prototype设置为Person的一个实例,最后一个步骤是将prototype的constructor属性重设为Author(因为把prototype属性设置为Person的实例时,其constructor属性被 抹除了)。
继承优点:
1.前海重复性的代码
2.并且发行量弱化对象间的耦合
继承方式:
一、类式继承:在构造函数中,创建实例属性要使用关键字this。
/** * 定义Person(父类) */function Person(name) { this.name = name;} Person.prototype.getName = function() { return this.name;} /** * 继承方法 */ var extend = function(subClass, superClass) { var F = function() {} F.prototype = superClass.prototype; subClass.prototype = new F(); subClass.prototype.constructor = subClass; /** * 下面这一段代码是和下面的(1)中是相等的 * 这段代码是解决在subClass中调用父类superClass的constructor中的方法 */ subClass.superClass = superClass.prototype; if (superClass.prototype.constructor == Object.prototype.constructor) { superClass.prototype.constructor = subClass; } } /** * 定义Author类(子类) */ function Author(name, book) { // (1) Person.call(this,name); Author.superClass.constructor.call(this, name); this.book = book; } /** 本例不像先前那样手工设置prototype和constructor属性,而是通过在类声明之后(在向prototype添任何方法之前) * 立即调用extend函数来达到同样的目的。唯一的问题是超类(Person)的名称被固化在了Author类的声明中。 */ extend(Author, Person); /** * Author的原型对象放到extend的后面 */ Author.prototype.getBook = function() { return this.book; } Author.prototype.getName = function() { var name = Author.superClass.getName.call(this); return name; } /** * 创建Author实现并调用getName方法 */ var p = new Author("Hello JavaScript"); alert(p.getName());
0 0
- [整理]JavaScript的继承之类式继承
- JavaScript面向对象之类的继承
- OC之类的继承
- C++之类的继承
- swift之类的继承
- Java之类的继承
- C++之类的继承
- 自学C++之类的继承
- c++基础之类的继承
- JavaScript面向对象之类与继承
- 【代码整理】JavaScript的寄生组合式继承
- JavaScript的继承--组合继承
- JavaScript继承,寄生式继承
- JavaScript 继承---寄生式继承
- C++复习之类继承的控制访问
- 类对象继承之类的云云
- C++虚继承之类的实际大小
- C++之类的继承和多态
- magento PHP Extensions “0” must be loaded?
- jconsole当地连接失败
- Single Number II
- Impala入门笔记
- 数学之路-大数据时代的数学思维-概率论基础(1)
- [整理]JavaScript的继承之类式继承
- jsp 静态引入<%@ include %> 动态引入<jsp:include> 区别
- 网站攻击与Sql注入
- linux下lsof程序简介
- cocos2dx 3.0 安装及项目创建
- OpenGL ES 中 GLU 做矩阵转换的资料
- 基于MPEG-4编码的近距离无线视频传输系统
- 那些设计比较简单
- android中的文件存储操作总结