ECMAScript 2020(ES11)的新特性:类继承中的 super 方法的改进

阅读时长 4 分钟读完

在 ECMAScript 2020 中,类继承中的 super 方法被改进了。在之前的版本中,我们只能使用 super 关键字来调用父类的方法,现在我们可以使用 super 关键字来作为对象访问其父类的属性和方法。这篇文章将会详细解释这个改进,并且通过示例代码演示它的使用。

super 方法的改进

在 ES6 中,我们可以使用 super 关键字来调用父类的方法:

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

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

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

在这个例子中,我们使用 super.sayHello() 来调用父类的 sayHello 方法。

在 ES11 中,我们可以使用 super 关键字来访问其父类的属性和方法。在之前的版本中,我们只能使用 this 关键字来访问自身的属性和方法,现在我们可以通过 super 关键字来访问父类的属性和方法。下面的例子演示了如何使用 super 关键字来访问父类的属性和方法:

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

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

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

在这个例子中,我们可以使用 super 关键字来访问父类的属性和方法。在 Child 类中,我们定义了一个 message 属性来返回父类的 message 属性。在 getter 中,我们使用了 super.message 来访问父类的 message 属性。

学习和指导意义

这个改进让我们能够更加方便地访问父类的属性和方法。特别是在复杂的继承结构中,使用 super 关键字可以让我们更加方便地继承父类的属性和方法,从而减少代码的复杂度。

尽管这个改进的使用场景不是很多,但是它使得类的继承更加方便和灵活,也为使用者提供了更多的选择和控制。

总结

在本文中,我们详细解释了 ES11 中新增的类继承中 super 方法的改进,并通过示例代码演示了如何使用 super 关键字来访问父类的属性和方法。这个改进使得类的继承更加方便和灵活,也为使用者提供了更多的选择和控制。希望本文能够帮助你更好地理解和应用这个改进。

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

纠错
反馈