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。所以,第五种是比较完美的方法。

猜你喜欢

转载自www.cnblogs.com/yangdaren/p/10759868.html