1.构造继承
核心:在子类的内部调用父类,通过call改变父类中this的指向
等于是复制父类的实例属性给子类
特点:
创建子类实例时,可以向父类传递参数
可以实现多继承
可以方便的继承父类型的属性,但是无法继承原型中的方法
缺点:
实例并不是父类的实例,只是子类的实例
无法继承原型中的方法
无法实现函数复用,每个子类都有父类实例函数的副本,影响性能
2.原型链继承
核心:将父类的实例作为子类的原型
特点:
子类的实例也是父类的实例
可以方便的基础父类型的原型中的方法,但是属性的继承无意义
缺点:
只执行一次,无法给属性传值
属性的继承无意义
3.组合继承(原型链继承以及构造继承)
核心:结合了两种模式的优点,传参和复用
特点:1、可以继承父类原型上的属性,可以传参,可复用。
2、每个新实例引入的构造函数属性是私有的。
缺点:调用了两次父类构造函数(耗内存),子类的构造函数会代替原型上的那个父类构造函数。
网友评论