js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承)

原型链实现继承:

js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承)_第1张图片

缺点:

1.重写子类的原型 等于 父类的一个实例,(父类的实例属相变成子类的原型属性)如果父类包含引用类型的属性,那么子类所有实例都会共享该属性

2.在创建子类实例时,不能向父类的构造函数传递参数

原型连继承和借用构造函数 组合实现继承

组合继承解决原型链继承的引用类型原型属性被实例共享问题

js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承)_第2张图片

缺点:

两次调用父类构造函数:(第一次是在创建子类原型的时候,第二次是在子类构造函数内部)。子类继承父类的属性,一组在子类实例上,一组在子类原型上(在子类原型上创建不必要的多余的属性)(实例上的屏蔽原型上的同名属性),同时效率低。

寄生组合继承


js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承)_第3张图片

优点:

1.只调用一次父类的构造函数,避免了在子类原型上创建不必要的,多余的属性

2.原型链保持不变

更详细看:http://blog.csdn.net/crowds123/article/details/25503491

你可能感兴趣的:(js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承))