常见的 js 中的继承方法

306 阅读2分钟

ES5 继承有以下六种方法:

1). 原型链继承 JavaScript 实现继承的基本思想:

      通过原型将一个引用类型继承另一个引用类型的属性和方法

2). 借用构造函数继承(伪造对象或经典继承) JavaScript 实现继承的及基本思想:

      在子类构造函数内部调用超类型构造函数。 通过使用 apply()call() 方法可以在新创建的子类对象上执行构造函数。

3). 组合继承(原型 + 借用构造)(伪经典继承) JavaScript 实现继承的基本思想:

      将原型链和借用构造函数的技术组合在一块.,从而发挥两者之长的一种继承模式,将原型链和借用构造函数的技术组合到一起,从而取长补短发挥两者长处的一种继承模式。

4). 型式继承 JavaScript 实现继承的基本思想:

      想借助原型可以基于已有的对象创建新对象,同时还不必须因此创建自定义的类型。

5). 寄生式继承 JavaScript 实现继承的基本思想:

      创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,最后再像真正是它做了所有工作一样返回对象。(寄生式继承是原型式继承的加强版)

6). 寄生组合式继承 JavaScript 实现继承的基本思想:

      通过借用函数来继承属性,通过原型链的混成形式来继承方法。

Es6 的继承:

1).使用 class 构造一个父类

     class Parent {
           constructor(name,age){
               this.name = name
               this.age = age
           }
           sayName(){
               console.log(this.name)
           }
     }

2). 使用 class 构造一个子类,并使用 extends 实现继承, super 指向父类的原型对象

     class Child extends Parent{
            constructor(name,age,gender){
                 super(name,age)
                 this.gender = gender
            }
            sayGender(){
                console.log(this,gender)
            }
     }

3). 实例化对象

     const ming = new Child('ming',18,'男')
     ming.sayGender()
     ming.sayName()
     console.log(ming.name)
        console.log(ming.age)
     }