原文:https://www.cnblogs.com/humin/p/4556820.html
JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。主要的继承方式有以下六种:
1.原型继承:
通过向子类的prototype赋值父类实例,实现继承父类的属性和方法。
2.构造继承:
通过在子类内部调用父类的call方法,使用父类的构造函数实现继承。
3.实例继承:
通过子类返回父类的实例,实现继承。
4.拷贝继承:
通过在子类内部遍历父类实例并赋值给自己的prototype,可以实现多继承。
5.组合继承:
通过构造继承,继承父类初始化的属性和方法,通过原型继承,实现父类动态创建的属性和方法的继承。
6.寄生组合继承:
通过一个匿名立即执行函数和匿名函数,将子类的prototype赋值为父类的实例,避免两次实例化父类实例。