JavaScript如何定义子类
2017-07-22 12:57
127 查看
子类
在面向对象编程里,类B可以继承自另外一个类A。我们就称这个类A为父类,类B为子类。B的实例会从类A继承所有的实例方法。同时B也可以定义自己的实例方法,有些方法可以覆盖类A中的同名方法。如果B的方法覆盖了A的方法,B的该方法可能会去调动A的同名方法,这种做法称为方法链。同样,子类的构造函数B()有时需要调用父类的构造函数A(),这种做法称为构造函数链。
定义子类
JavaScript创建子类的关键之处在于,采用合适的方法对原型对象进行初始化。如果类B继承自类A,那么B.prototype也必须是A.prototype的后代。因此可以这样来实现:
B.prototype = inherit(A.prototype);
B.prototype.constructor = B;其中,inherit函数如下所示:
function inherit(p){
if(p == null) throw TypeError();
if(Object.create) return Object.create(p);
var t = typeof p;
if(t !== 'object' && t !== 'function') throw TypeError();
function f(){};
f.prototype = p;
return new f();
}构造函数和方法链
在子类中调用父类的构造函数和方法:
在面向对象编程里,类B可以继承自另外一个类A。我们就称这个类A为父类,类B为子类。B的实例会从类A继承所有的实例方法。同时B也可以定义自己的实例方法,有些方法可以覆盖类A中的同名方法。如果B的方法覆盖了A的方法,B的该方法可能会去调动A的同名方法,这种做法称为方法链。同样,子类的构造函数B()有时需要调用父类的构造函数A(),这种做法称为构造函数链。
定义子类
JavaScript创建子类的关键之处在于,采用合适的方法对原型对象进行初始化。如果类B继承自类A,那么B.prototype也必须是A.prototype的后代。因此可以这样来实现:
B.prototype = inherit(A.prototype);
B.prototype.constructor = B;其中,inherit函数如下所示:
function inherit(p){
if(p == null) throw TypeError();
if(Object.create) return Object.create(p);
var t = typeof p;
if(t !== 'object' && t !== 'function') throw TypeError();
function f(){};
f.prototype = p;
return new f();
}构造函数和方法链
在子类中调用父类的构造函数和方法:
相关文章推荐
- 如何用JavaScript定义一个类
- JavaScript如何定义类或对象
- 基于JavaScript如何实现ajax调用后台定义的方法
- [Javascript] Javascript如何定义函数参数的默认值
- JavaScript 的函数如何定义
- JavaScript如何定义一个自己的可复用的JS文件!
- javascript如何定义对象数组
- JavaScript教程:如何定义全局函数
- 如何在QML中定义Javascript资源
- 如何在javascript中访问页面定义的变量
- JavaScript中的数组如何定义
- 如何在javascript中访问页面定义的变量
- JavaScript中如何定义和获取全局变量
- 基于JavaScript如何实现ajax调用后台定义的方法
- SharePoint【Ribbon系列】-- 09.如何让用户定义的Ribbon引用外部Javascript文件
- 如何在javascript中访问页面定义的变量
- javascript面向对象编程子类如何继承父类分析
- javaScript中如何定义类
- javascript如何定义类
- javaScript中如何定义对象