JavaScript原型链继承

首先创建一个父类

JavaScript原型链继承

JavaScript原型链继承

创建一个子类

JavaScript原型链继承

 

当我们要通过原型链继承时

JavaScript原型链继承

子类可以调用父类在原型链上的方法

JavaScript原型链继承

但是子类的构造函数却指向父类

JavaScript原型链继承

正如下图(其中subClass为实例化过的对象)

JavaScript原型链继承

这时候可能会想,那我把子类的构造函数指向自身不就好了吗,于是添加下面代码

JavaScript原型链继承

JavaScript原型链继承

子类构造函数真的指向了自身,但是我们检查一下父类

JavaScript原型链继承

父类的构造函数却指向了子类,如下图所示(其中subClass为实例化过的对象)

JavaScript原型链继承

以下是我的解决方法,通过复制一份父类的原型副本保存在变量中,并修改构造函数

JavaScript原型链继承

JavaScript原型链继承

JavaScript原型链继承

子类继承了父类,但却不影响构造函数,如下图所示(其中subClass为实例化过的对象)

 JavaScript原型链继承