继承方式及其优缺点 ?

原型链继承

优点:方法可以共享,不会有重复的属性副本。

缺点:原型上的属性被所有实例共享,可能导致数据不安全。

- --- --
----- - --
 
- --- --
--- - - ---- - -

构造函数继承

优点:可以传递参数给子类构造函数,可以有私有属性和方法。

缺点:每个实例都有自己的属性副本,不支持方法共享。

- ---- -
    --- - -----
-
 
----- - --- -
    ---------
--
 
- ---- -- -
    ------ ------ - -
    --- - ----
-
 
--- - - ---- - -

组合继承

结合了构造函数和原型链的优点,可以传递参数并且方法共享。

- ---- -
    --- - -----
-
 
----- - --- -
    ---------
--
 
- ---- -- -
    ------ ------ - -
    --- - ----
-
 
--- - --------- - -
----- - -- - -

原型式继承

通过一个对象来创建另一个对象,新对象将拥有原型对象的所有属性和方法。

- ---- -
    - --- --
    --- - --
    - - ----
-

寄生式继承

类似于原型式继承,但是不修改原型对象,而是在新对象上直接添加属性和方法。

- ---- -
    - ----- - ----- - -
    ------- - --- -
        -------
    --
    - ------
-

ES6 class语法糖

使用class关键字定义类,继承使用extends关键字。

- - -
    ---- -
        --- - -----
    -
 
    --- -
        ---------
    -
-
 
- - - - -
    ---- -- -
        -------- - -
        --- - ----
    -
-
码海无涯苦作舟,编程之路创一流!