继承
- 原型链继承(在实例化一个类时,新创建的对象复制了父类构造函数的属性和方法,并将proto指向父类的原型对象,当在子类上找不到对应的属性和方法时,将会在父类实例上去找。)
缺点1:引用缺陷(修改其中一个实例的父类变量会影响所有继承的实例)
缺点2:无法为不同的实例初始化继承来的属性 - 构造函数继承(在子类的构造函数中执行父类的构造函数,并为其绑定子类的this,让父类的构造函数把成员属性和方法都挂到子类的this上)
缺点:无法访问原型上的方法 - 组合式继承(将原型链继承和构造函数继承组合到一起, 综合了原型链继承和构造函数继承的优点)
小缺点:调用了两次父类构造函数 - extends继承(class和extends是es6新增的,class创建一个类,extends实现继承)