1原型链继承
可以继承父类原型上的属性


缺点 引用属于类型如果发生变化 都会改变
新实例无法向父类构造函数传参


如果是基本属性类型发生变化 不会改变


2构造函数继承
不可以继承父类原型上的属性
引用数据类型和基本数据类型发生变化 不会改变
新实例可以向父类构造函数传参


3组合继承 (原型链继承和构造函数继承的结合体 最常用)
可以继承父类原型上的属性
新实例可以向父类构造函数传参
引用数据类型和基本数据类型发生变化 不会改变
缺点 调用两次parent的构造函数(Parent.call(), new Parent()) (消耗内存)


4寄生组合继承 (最优)












