ECMAScript 2021:在类中使用名为 #field 的本地私有字段

· 约 4 分钟读完

ECMAScript 2021:在类中使用名为 #field 的本地私有字段

JavaScript 是一种动态语言,其语言特性让开发者可以为对象动态地添加或修改属性值,这使得 JavaScript 中的面向对象编程(OOP)有时会变得有点混乱。

为了解决这个问题,ECMAScript 2021 (也叫 ES2021 或 ES12)中引入了一种新特性:在类中使用名为 #field 的本地私有字段。

这个新特性为开发者提供了一种安全、可靠、私有的数据存储方法,同时也让 OOP 更加规范化和易于维护。

#field 语法

在类中声明一个私有字段,只需在字段名称前加上 # 即可,比如:

类似此例,#field 在类中的作用域仅限于该类,请注意,它并不影响类继承中的私有属性和方法。

注意:#不能放在实例属性中,也更不能作为全局变量使用。

#field 与 this 的区别

在上面的代码中,我们看到一个类 Example 中声明了一个私有属性 #myPrivateField。在实例化 Example 类之后,您仍然可以在该实例上设置和访问字段的值,比如:

上述代码将报错:私有字段 '#myPrivateField' 必须在封闭类中声明。

正确的方式是:使用一个 getter 和 setter 来访问由前述字段在类中定义的变量。如:

从上面的代码中,我们可以看到实例用“存取器属性”(getter 和 setter)来获取和获取私有变量的信息。

这样以来,JavaScript 中的类与其他面向对象语言中的类一样,现在有了私有变量的支持。

如何使用 #field

首先,请确保您需要类中的私有属性。

私有属性实际上可以完成许多任务,例如:

  • 存储类的私有数据
  • 通过私有属性来实现类似抽象类的行为,等等。

下面是一个基本的示例,我们将一个具有私有字段的类实例化,然后使用 privateField 存储新值。

#field 的指导意义

使用 ECMA Script 最新2021 的 #field 私有变量功能,您可以通过私有变量的概念来定义元素,从而在代码中创建更结构化的形式,同时又可以确保代码中的数据安全性。

使用私有变量作为代码中重要的数据成分,使用者将具有更好的控制,可以确保构建更坚固的代码。

这种新功能的集成将促进许多开发项目,因为开发者现在可以使用 OOP 的一些重要工具,例如:封装、继承、多态等等。

此外,# field 是一项强大而有用的技术,因为它可以显着地提高代码的可读性和可维护性。

结语

在此技术指南中,我们介绍了 ECMAScript 2021 中的新特性 #field。我们探讨了其意义,如何正确地定义私有变量属性,以及如何使用它来创建结构化形式的代码。

希望这篇文章能帮助您学习和了解 JavaScript 中的 OOP,也希望能为您的开发工作带来更大的好处。

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