ES6 中的类继承用法详解

阅读时长 4 分钟读完

ES6 中的类继承是一个非常强大的特性,它可以让开发者通过继承类来获取父类的属性和方法,同时还可以通过在子类中的修改来定制化自己的需求。本文将详细探讨 ES6 中的类继承用法,包括继承方式、super 作用、输出结果等方面,旨在为前端开发者提供深入的学习和指导。

继承方式

在 ES6 中,继承的方式有两种,一种是用 extends 关键词,另一种是使用 Object.setPrototypeOf。下面分别介绍这两种方式。

使用 extends

使用 extends 关键词时,我们需要创建一个子类 SubClass,并让其继承父类 ParentClass 的所有属性和方法。下面是一个简单的例子:

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

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

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

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

在上述例子中,我们通过关键词 extends 来让 SubClass 继承了 ParentClass 的所有属性和方法,也包括构造函数中的参数。我们实例化了一个 SubClass 的对象,可以通过这个对象调用父类和子类的方法。

使用 Object.setPrototypeOf

在 ES6 之前,我们一般采用 Object.setPrototypeOf 的方式来实现继承。下面是一个简单的例子:

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

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

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

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

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

在上述例子中,我们使用了构造函数 ParentClassSubClass,并使用了 Object.setPrototypeOfSubClass 的原型指向了 ParentClass 的原型,从而实现了继承。

super 作用

在学习 ES6 中的类继承时,另一个重要的关键字就是 super。它可以让我们在子类中对父类进行访问,调用父类的方法以及继承父类的构造函数。下面是一个简单的例子:

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

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

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

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

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

在上述例子中,我们使用了 Super 来访问父类,也使用了它来调用父类的方法 sayHello()。我们还在子类的构造函数中使用了一个 super 来继承父类的构造函数中的参数 name

输出结果

最后,我们来看看这些代码的输出结果。在上面的例子中,我们都使用了 console.log() 来输出结果,下面是输出的详细结果:

总结

综上所述,ES6 中的类继承是一项非常强大的特性,它可以让我们轻松地创建子类并继承父类的所有属性和方法,同时还可以使用 super 来访问父类、调用父类的方法以及继承父类的构造函数。在实际开发中,我们可以根据需要灵活选择继承方式,以便更好地完成项目需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c1df6b83d39b488160cb1a

纠错
反馈