JS继承的四种方式总结

1.原型链继承

特点: 重写子类的原型对象,父类原型对象上的属性和方法都会被子类继承

​ 存在的问题:在父类中定义的实例引用类型的属性,一旦被修改,其他的实例也会被修改

​ 当实例化子类的时候,不能传递参数到父类

2.借用构造函数模式

特点:在子类构造函数内部间接调用(call() ,apply(), bind())父类的构造函数

​ 原理:改变父类中的this指向

​ 优点:仅仅的是把父类中的实例属性当做子类的实例属性,并且还能传参

​ 缺点:父类中公有的方法不能被继承下来

3.组合继承

特点:  结合了原型链继承和借用构造函数继承的优点

​ 原型链继承:公有的方法能被继承下来

​ 借用构造函数:实例属性能被子类继承下来

​ 缺点:调用了两次父类的构造函数

​ 1.实例化子类对象

​ 2.子类的构造函数内部

4.寄生组合式继承

​ Student.prototype = Object.create(People.prototype);

​ 子类 = Object.create(父类);

​ 把子类的原型对象指向了父类的原型对象

posted on 2021-02-19 22:51  Steven_YF  阅读(100)  评论(0编辑  收藏  举报