js如何实现类的继承

Posted yangdaren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何实现类的继承相关的知识,希望对你有一定的参考价值。

方法一:借助构造函数实现继承

技术图片

这种方法的缺点:原型链上的东西并没有被继承。

 

方法二:借助原型链实现继承

技术图片

这种方法的缺点:改变了一个实例对象,另一个实例对象也跟着改变,因为s1.__proto__ === s2.__proto__。

 

方法三:组合方式

技术图片

这种方法的缺点:父类的构造方法执行了2次,分别在Parent3.call(this)和Child3.prototype = new Parent3()。

 

方法四:组合方式的优化1

技术图片

这种方法的缺点:无法区分实例是由谁创建的,console.log(s5.constructor)输出为Parent4,但实际上s5是由Child4创建的。

 

方法五:组合方式的优化2

技术图片

console.log(s7 instanceof Child5,s7 instanceof Parent5);输出true,true。

console.log(s7.constructor);输出为Child5。所以,第五种是比较完美的方法。

以上是关于js如何实现类的继承的主要内容,如果未能解决你的问题,请参考以下文章

JS如何实现继承?

javascript实现继承方法

js原型继承的几种方法

昼猫笔记 JavaScript -- 面向对象(II)- 继承

java类的继承

在 Python 中如何实现类的继承,方法重载及重写?