原型链继承
缺点:
- 引用类型的属性会被所有实例共享
如图,给child1中push一个“yayu”,chil2也会共享该属性
- 在创建Child实例的时候,不能传递参数
借用构造函数
优点
-
避免引用类型的属性被实例共享
-
可以在Child中向Parent传递参数
如图所示
- 缺点
方法在构造函数中定义,每次创建实例都会创建一遍方法
组合式继承
- 融合了原型链继承和构造函数的优点。
原型式继承
- 缺点
和原型链继承相同,引用类型数据会被实例共享
这里面修改person1的值,person2并没有改变,并不是因为person1、person2有独立的name值,而是因为person1.name = “person1”是给person1添加了一个name值,并不是修改了原型上的name值
寄生式继承
- 缺点 和借用构造函数一样,每次创建对象都会创建一遍方法
寄生组合式继承
- 优点
解决了组合式继承中会调用两次父构造函数的问题