ECMAScript 2018 中的私有字段和方法使用详解

阅读时长 4 分钟读完

在 ECMAScript 2015 中,我们看到了类的引入,这是一种非常强大的面向对象编程模型。然而,它有一个缺陷,那就是没有办法创建私有成员。在 ECMAScript 2018 中,我们终于可以使用私有字段和方法了。

什么是私有字段和方法?

私有字段和方法是指只能在类内部访问的成员。这些成员对于外部代码是不可见的,因此可以避免被误用或滥用。在 ECMAScript 2018 中,我们可以使用 # 符号来定义私有成员。

如何定义私有字段和方法?

在类内部,我们可以使用 # 符号来定义私有字段和方法。例如:

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

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

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

在上面的例子中,我们定义了两个私有字段 #name#age,以及一个私有方法 #calculateBirthYear()。这些成员只能在类内部访问,外部代码无法访问它们。

如何访问私有字段和方法?

在类内部,我们可以直接访问私有字段和方法。例如:

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

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

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

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

在上面的例子中,我们定义了一个 getName() 方法来访问私有字段 #name。在方法内部,我们可以直接访问私有字段 #name

如何继承私有字段和方法?

在 ECMAScript 2018 中,我们可以使用 super 关键字来访问父类的私有字段和方法。例如:

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

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

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

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

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

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

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

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

在上面的例子中,我们定义了一个 Student 类继承自 Person 类。在 getStudentInfo() 方法中,我们使用 super.getName() 来访问父类的私有字段 #name

总结

在 ECMAScript 2018 中,我们可以使用 # 符号来定义私有字段和方法。这些成员只能在类内部访问,外部代码无法访问它们。我们可以直接访问私有字段和方法,在继承中使用 super 关键字来访问父类的私有成员。私有字段和方法可以帮助我们更好地封装类的实现细节,防止被误用或滥用。

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

纠错
反馈