js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承)
2017-03-29 本文已影响0人
sonlylee
原型链实现继承:
缺点:
1.重写子类的原型 等于 父类的一个实例,(父类的实例属相变成子类的原型属性)如果父类包含引用类型的属性,那么子类所有实例都会共享该属性
2.在创建子类实例时,不能向父类的构造函数传递参数
原型连继承和借用构造函数 组合实现继承
组合继承解决原型链继承的引用类型原型属性被实例共享问题
缺点:
两次调用父类构造函数:(第一次是在创建子类原型的时候,第二次是在子类构造函数内部)。子类继承父类的属性,一组在子类实例上,一组在子类原型上(在子类原型上创建不必要的多余的属性)(实例上的屏蔽原型上的同名属性),同时效率低。
寄生组合继承
优点:
1.只调用一次父类的构造函数,避免了在子类原型上创建不必要的,多余的属性
2.原型链保持不变
更详细看:http://blog.csdn.net/crowds123/article/details/25503491