详解 ES12 新特性之 private 和 private method

阅读时长 6 分钟读完

在 JavaScript 中,私有成员一直是一个争议话题。许多开发人员认为 JavaScript 缺乏私有成员的支持,这使得编写模块化代码变得更加困难。 ES6 引入了类和模块,但它们并没有真正解决这个问题。ES12 加入了一些新的语法,私有成员和私有方法是其中之一。在本篇文章中,我们将深入了解 ES12 中的 private 和 private method,并看看如何在你的代码中使用它们。

什么是 private 成员?

在 JavaScript 代码中,有时我们需要将一些属性或方法隐藏起来,使它们不被其他代码访问或修改。ES12 中添加了一个新的语法,private 成员可以用来实现这个目的。

要声明私有成员,我们使用 # 符号。让我们看下面的例子:

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

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

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

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

在这个例子中,我们声明了一个私有字段 #privateField,它的值为 hello。我们也定义了一个公共方法 sayHello,它将私有字段打印到控制台。

当我们创建 Example 类的实例时,我们可以像使用公共字段和方法一样使用 #privateField,但是仅限于内部。如果我们尝试在类外访问私有字段,我们会得到一个语法错误。

什么是 private 方法?

ES12 也引入了 private 方法的概念。这些方法不能从类外部访问,只能从类内部访问。

要定义私有方法,请使用 # 符号。这里有一个例子:

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

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

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

在这个例子中,我们声明了一个私有方法 #privateMethod,它将一条消息打印到控制台。我们还定义了一个公共方法 publicMethod,它调用私有方法。

与私有字段一样,私有方法也不能从类外部访问。

为什么要使用 private 成员和方法?

为什么要使用 private 成员和方法呢?

第一,私有成员和方法使得代码更模块化。因为私有成员和方法只能在类的内部使用,所以它们不会被外部代码访问或修改,从而增加了代码的可维护性。

第二,私有成员和方法提高了代码的安全性。因为私有成员和方法不能被外部代码访问,所以它们可以在类中被更仔细地处理,避免了一些安全问题。例如,私有字段可以被声明为只读或只写,从而防止它们在类外部被修改。

如何使用 private 成员和方法?

要开始使用 private 成员和方法,请使用 # 符号定义它们。在类中使用时,它们的行为类似于公共成员和方法。

让我们来看一个更详细的例子:

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

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

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

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

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

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

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

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

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

在这个例子中,我们创建了一个银行账户类 BankAccount。它有两个私有字段 #accountNumber#balance。我们还定义了公共方法 depositwithdrawgetBalance,它们可以用来存钱、取钱和获取余额。

我们添加了私有方法 #printStatement,它将银行账户号码和余额打印到控制台。我们还在类的外部定义了一个公共方法 printStatement,它调用私有方法。

BankAccount 类的 constructor 方法中,我们初始化了私有字段 #accountNumber#balance。我们使用公共方法 depositwithdraw 来更新 #balance,并使用公共方法 getBalance 来访问它。最后,我们调用了公共方法 printStatement,它调用了私有方法 #printStatement

我们用下面的命令来运行这个脚本:

这将打印以下输出:

在这个例子中,我们使用 private 成员和方法来保护银行账户的机密信息。私有成员和方法只能被类中的其他方法访问,而不能被外部代码访问。

结论

ES12 中的 private 成员和方法是一个强大的工具,可以使你的代码更模块化和更安全。使用 # 符号定义私有成员和方法,然后像使用公共成员和方法一样使用它们。使用私有成

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

纠错
反馈