JavaScript继承
原型链继承
每个构造函数都有一个原型对象prototype,原型通过constructor属性指回构造函数。实例通过原型链prptp指向实例原型。
1 | /** |
盗用构造函数继承
在子类构造函数中调用父类构造函数。函数就是在特定上下文中执行代码的简单对象,可以使用apply()和call()方法以新创建的对象为上下文执行构造函数
1 | /** |
组合继承
使用原型链继承原型上的属性和方法,通过盗用构造函数继承实例属性
1 | /** |
原型式继承
创建一个临时构造函数,将传入的对象赋值给这个构造函数的原型,然后返回这个临时类型的一个实例
1 | function object (o) { |
寄生式继承
创建一个实现继承的函数,以某种方式增强对象,然后返回这个对象
1 | function object (o) { |
寄生式组合继承
不通过调用父类构造函数给子类原型赋值,而是取得父类原型的一个副本,使用寄生式继承来继承父类原型,然后返回的新对象赋值给子类原型
1 | // 只调用了一次父类构造函数,而且原型链仍然保持不变 |