JS继承方式

js继承有多种继承方式,但最常用的是组合模式,代码例子如下

JS继承方式_第1张图片

     在这种方式下,把实例函数都保存在原型对象上,这样可以实现函数的复用,通过Super.call(this,age)继承父类的属性。这种方式有一点缺点,子类原型上有一份多余的父类实例属性,因为父类的构造函数被调用了两次,生成了两份,而子类上的那份覆盖了子类原型上的那一份原型,存在内存浪费的情况。

针对上述情况提出了寄生组合方式,代码如下:


JS继承方式_第2张图片

这种方式中,提出了中间函数,切掉了原型对象上多余的父类实例属性。

随着ES6标准的提出,出现了更优雅的继承方式,更接近于面向对象的编程方式,主要关键字是class和extends,代码如下:

JS继承方式_第3张图片

你可能感兴趣的:(JS继承方式)