原型继承
优点:通过原型继承多个引用类型多个类型的属性和方法
缺点:sub原型变成了Sub原型变成了Super的实例,如果Super的实例某个属性是引用值,该引用值就会被应用到所有Sub创建的实例中去,会有污染问题
盗用构造函数
优点:每个实例都会有自己的a属性,哪怕是引用值也不会被污染
缺点:Super构造函数中的方法在每个实例上都要创建一遍(除非该方法声明提到全局);Sub的实例无法访问Super原型上的方法,浪费资源
组合继承
优点:集合了【原型继承】和【盗用构造函数】的优点
缺点:存在效率问题,Super始终会被调用两次
寄生式继承
优点:根据一个对象克隆创建另一个对象,并增强对象
缺点:同【盗用构造函数继承】方法在每一个实例上都要创建一遍