JavaScript 中 super 关键字的作用是什么?

推荐答案

在 JavaScript 中,super 关键字用于调用父类的构造函数或方法。它主要有以下两种用途:

  1. 在子类的构造函数中调用父类的构造函数super() 必须在子类构造函数中使用,且必须在 this 关键字之前调用。
  2. 在子类的方法中调用父类的方法super.methodName() 可以在子类的方法中调用父类的同名方法。

本题详细解读

1. 在子类构造函数中调用父类构造函数

当你在子类中定义构造函数时,必须首先调用 super(),以便初始化父类的属性和方法。这是因为子类继承了父类的属性和方法,如果不调用 super(),子类将无法正确继承父类的属性。

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

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

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

2. 在子类方法中调用父类方法

super 也可以用于在子类的方法中调用父类的同名方法。这在子类需要扩展或修改父类方法的行为时非常有用。

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

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

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

注意事项

  • super() 必须在子类构造函数中使用,且必须在 this 关键字之前调用。
  • 如果父类没有定义构造函数,子类仍然需要调用 super(),因为 JavaScript 会隐式地为父类生成一个默认的构造函数。
  • super 关键字只能在类的方法中使用,不能在普通函数中使用。

通过理解 super 的作用,你可以更好地掌握 JavaScript 中的继承机制,并编写出更加灵活和可维护的代码。

纠错
反馈