js继承的6种方式:
想要继承,就必须要提供个父类(继承谁,提供继承的属性)
继承在js中占有非常重要的地位,那么在js中有很多中继承的方式,不过每一种继承方式都有优缺点。下面就列举几种继承的方式:
一、原型链继承
父类的实例作为子类的原型
优点:
- 简单易于实现,父类的新增的实例与属性子类都能访问
缺点:
-
可以在子类中增加实例属性,如果要新增加原型属性和方法需要在new 父类构造函数的后面
-
无法实现多继承
-
创建子类实例时,不能向父类构造函数中传参数
二、借用构造函数继承(伪造对象、经典继承)
复制父类的实例属性给子类
重点:
用.call()和.apply()将父类构造函数引入子类函数(在子类函数中做了父类函数的自执行(复制))
优点:
- 解决了子类构造函数向父类构造函数中传递参数
- 可以实现多继承(call或者apply多个父类)
缺点:
- 方法都在构造函数中定义,无法复用
- 不能继承原型属性/方法,只能继承父类的实例属性和方法
三、实例继承(原型式继承)
重点: