ECMAScript 2019 正式发布了,并引入了一些新的特性,其中一个值得关注的特性是类中允许使用私有字段与方法。在此之前,ECMAScript只支持公共字段与方法。这篇文章将介绍此新特性的详细内容,以及学习和使用此特性的指导意义。
类中的私有字段
在之前的实现方式中,实现私有实例属性是非常麻烦的。通常,我们使用使用下划线前缀表示属性是私有的,但是这并不是一个真正的私有属性,因为它仍然可以被访问和修改。然而,新的私有字段使私有属性成为类的一部分,从而真正保护了私有属性。
私有字段只能在类内部访问,这意味着它们无法被子类化、实例化或外部访问。它的语法格式为 #fieldName
,请注意 #
前缀。例如,下面是一个使用私有字段的例子:
----- ------- - --------------- - --------- ------------- - -------- ----------------- - ------ --------------------- - - ----- --- - --- ---------- ------------------------------- -- -------- ----------------------------------- -- --------- --------------------------------- -- -----
在上面的代码中,#myPrivateField
是私有字段。只有通过 getPrivateField()
方法才能访问它。而在外部访问该私有字段时,则会抛出 Error。
需要注意的是,类中可以有多个私有字段。
类中的私有方法
和私有字段类似,私有方法也是只能在类内部使用。使用的语法格式为 #methodName()
,请注意 #
前缀。例如:
----- ------- - ------------------ - -------------------- --------- - ---------------- - ------------------- --------- ------------------------ -- -------- - - ----- --- - --- ---------- --------------------- -- ------- ---------------- ------- ----------------------- -- -----
在上述代码中,#myPrivateMethod()
是私有方法,只有在类内部的方法中才能使用该方法。当在类外部调用时,则会抛出 Error。
需要注意的是,私有方法可以调用其他私有方法,也可以访问私有字段,但它们不能通过对象实例访问。
私有字段和方法的指导意义
私有字段和方法提供了一个完整的防护层,使得私有数据成为了类的一部分,而不再是对象实例中的成员。这意味着代码维护者可以更加自由地重构和调整代码,而无需担心外界对私有数据的干扰。
举个例子,在之前的实现方式中,当我们想要修改一个私有字段时,需要遍历整个代码库,找出所有使用该字段的方法,并逐一修改它们。而使用新的私有字段和方法,则可以直接修改类中的私有字段或方法,而不需要关注外部调用的影响。
私有字段和方法的另一个优势是,可以使代码更加可读。私有字段和方法标记了类中用于实现功能的所有元素,使得使用该类的程序员更容易理解类的实现方式并使用该类。
总之,私有字段和方法的引入,让我们可以更优雅地实现和维护类,使代码库更加健壮和优雅。
结论
ECMAScript 2019 引入了私有字段和方法的特性,使得编写类的代码更加优雅和健壮。私有字段和方法的语法格式为 #fieldName
和 #methodName()
,它们只能在类内部使用,并提供了更完整的防护层,使代码更容易理解和维护。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6715ee28ad1e889fe2197dcb