您的位置:首页 > Web前端 > JavaScript

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();
}构造函数和方法链
在子类中调用父类的构造函数和方法:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息