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

js如何实现类的继承 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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

 

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

js如何实现类的继承 随笔 第2张

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

 

方法三:组合方式

js如何实现类的继承 随笔 第3张

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

 

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

js如何实现类的继承 随笔 第4张

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

 

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

js如何实现类的继承 随笔 第5张

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

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

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄