ECMAScript 2019 新增特性:允许在类中使用 private 字段与方法

ECMAScript 2019 正式发布了,并引入了一些新的特性,其中一个值得关注的特性是类中允许使用私有字段与方法。在此之前,ECMAScript只支持公共字段与方法。这篇文章将介绍此新特性的详细内容,以及学习和使用此特性的指导意义。

类中的私有字段

在之前的实现方式中,实现私有实例属性是非常麻烦的。通常,我们使用使用下划线前缀表示属性是私有的,但是这并不是一个真正的私有属性,因为它仍然可以被访问和修改。然而,新的私有字段使私有属性成为类的一部分,从而真正保护了私有属性。

私有字段只能在类内部访问,这意味着它们无法被子类化、实例化或外部访问。它的语法格式为 #fieldName,请注意 # 前缀。例如,下面是一个使用私有字段的例子:

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

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

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

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

在上面的代码中,#myPrivateField 是私有字段。只有通过 getPrivateField() 方法才能访问它。而在外部访问该私有字段时,则会抛出 Error。

需要注意的是,类中可以有多个私有字段。

类中的私有方法

和私有字段类似,私有方法也是只能在类内部使用。使用的语法格式为 #methodName(),请注意 # 前缀。例如:

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

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

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

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

在上述代码中,#myPrivateMethod() 是私有方法,只有在类内部的方法中才能使用该方法。当在类外部调用时,则会抛出 Error。

需要注意的是,私有方法可以调用其他私有方法,也可以访问私有字段,但它们不能通过对象实例访问。

私有字段和方法的指导意义

私有字段和方法提供了一个完整的防护层,使得私有数据成为了类的一部分,而不再是对象实例中的成员。这意味着代码维护者可以更加自由地重构和调整代码,而无需担心外界对私有数据的干扰。

举个例子,在之前的实现方式中,当我们想要修改一个私有字段时,需要遍历整个代码库,找出所有使用该字段的方法,并逐一修改它们。而使用新的私有字段和方法,则可以直接修改类中的私有字段或方法,而不需要关注外部调用的影响。

私有字段和方法的另一个优势是,可以使代码更加可读。私有字段和方法标记了类中用于实现功能的所有元素,使得使用该类的程序员更容易理解类的实现方式并使用该类。

总之,私有字段和方法的引入,让我们可以更优雅地实现和维护类,使代码库更加健壮和优雅。

结论

ECMAScript 2019 引入了私有字段和方法的特性,使得编写类的代码更加优雅和健壮。私有字段和方法的语法格式为 #fieldName#methodName(),它们只能在类内部使用,并提供了更完整的防护层,使代码更容易理解和维护。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6715ee28ad1e889fe2197dcb