在 ECMAScript 2020 的新版本中,出现了两个新的关键字:public 和 private。它们是为了解决 JavaScript 中面向对象编程的难题而引入的,让我们更容易创建和维护清晰的代码。
为什么需要 public 和 private 字段?
在 JavaScript 中,我们可以使用闭包或者函数来模拟私有成员,但这样会带来一些限制。例如,无法继承私有成员,无法保护私有成员不被修改。
public 和 private 关键字的出现,就是为了解决这些问题,让我们能够轻松地创建有用的公共接口和安全的私有成员。
public 字段
public 关键字用于创建可访问的成员,这些成员可以在实例中被访问,也可以在继承类中被访问。
例如,我们可以使用 public 关键字来定义一个简单的 class:
-- -------------------- ---- ------- ----- ------ - ------ ----- ------- ----------------- ------- - --------- - ----- - ------ ---------------------- ------ - -- - ------------------------- ----- ------------------------ - -
在这个例子中,我们定义了一个名为 name
的 public 变量和一个名为 move
的 public 方法。这些成员可以直接访问,因为它们是公共的。
我们可以使用这个类来创建一个实例:
const cat = new Animal('Tom'); cat.move(10);
这样就会输出:Tom moved 10m.
private 字段
private 关键字用于创建不可访问的成员,这些成员只能在类的内部被访问。
例如,我们可以使用 private 关键字来定义一个 class:
-- -------------------- ---- ------- ----- ------ - ------ ----- ------- ------- ---- ------- ----------------- ------- ---- ------- - --------- - ----- -------- - ---- - ------ ---------------------- ------ - -- - ------------------------- ----- ------------------------ - ------- ------ - ----------- - -
在这个例子中,我们定义了一个名为 age
的 private 变量和一个名为 grow
的 private 方法。这些成员和 public 成员一样,都是在类中定义的。
但是,它们只能在类的内部被访问,不能在类的外部访问。
我们可以使用这个类来创建一个实例:
const cat = new Animal('Tom', 2); cat.move(10);
这样也会输出:Tom moved 10m.
,但是无法访问 cat.age
变量,也无法调用 cat.grow()
方法。
如何使用 public 和 private 字段?
使用 public 和 private 字段的最大好处是它们能够让我们更加清晰地定义代码,同时也能够保护我们的代码不被意外修改。
如果我们要使用一个 public 或 private 变量,只需要在变量名称后面加上一个冒号和一个类型即可。例如:
-- -------------------- ---- ------- ----- ------ - ------ ----- ------- ------- ---- ------- ----------------- ------- ---- ------- - --------- - ----- -------- - ---- - -
在这个例子中,我们创建了一个 name
类型为字符串的 public 变量和一个 age
类型为数字的 private 变量。
如果我们要使用一个 public 或 private 方法,只需要在方法名称后面加上一个括号和可选的参数列表即可。例如:
-- -------------------- ---- ------- ----- ------ - ------ ----- ------- ------- ---- ------- ----------------- ------- ---- ------- - --------- - ----- -------- - ---- - ------ ---------------------- ------ - -- - ------------------------- ----- ------------------------ - ------- ------ - ----------- - -
在这个例子中,我们创建了一个名为 move
的 public 方法和一个名为 grow
的 private 方法。
public 和 private 字段的指导意义
使用 public 和 private 字段可以让我们更加清晰地定义代码,同时也能够保护我们的代码不被意外修改。这对于大型的应用程序尤为重要。
使用这些关键字,我们可以定义公共接口和私有实现,从而让代码更具可读性,更易于维护。
结论
public 和 private 关键字是 ECMAScript 2020 中最重要的新特性之一。它们让我们能够轻松地创建有用的公共接口和安全的私有成员,从而使代码更加清晰,更易于维护。
我们可以在定义 class 和 interface 时使用这些关键字来定义公共接口和私有实现,从而让代码更具可读性,更易于维护。
希望这篇文章对大家学习 public 和 private 字段有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6774d7516d66e0f9aaf0e2cd