JavaScript继承的几种模式

原型链

  让一个类的原型对象指向另一个类的实例

  JavaScript继承的几种模式

  问题1:引用类型会被共享,一个实例对象更改了值会在所有的对象中更新

  问题2:创建子类对象时,不能向超类构造函数中传值

借用构造函数  

  JavaScript继承的几种模式

  可向超类构造函数传值

  问题:无法复用方法

组合继承

  使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。

   调用两次超类构造函数

   JavaScript继承的几种模式

  JavaScript继承的几种模式

原型式继承

  创建一个临时性的构造函数,将传入的对象作为构造函数的原型。返回一个实例。所有返回的实例,共享构造函数中的引用类型

寄生式继承

  创建一个用于封装继承的函数。在函数内部新增方法来增强对象,返回对象实例。

  JavaScript继承的几种模式

   JavaScript继承的几种模式

寄生组合式继承  

  不必为了子类型的原型而调用超类型的构造函数,只需要一个超类型的副本

  JavaScript继承的几种模式

  JavaScript继承的几种模式

上一篇:使用nosql实现页面静态化的一个小案列


下一篇:selenium实例:unittest框架+PO开发模式