在 ES12 中使用 Private 字段:Getters,Setters 和普通属性

在 ES12 中使用 Private 字段:Getters,Setters 和普通属性

在 JavaScript 中,对象的属性通常是公开的,任何人都可以读取和修改它们。但是,在某些情况下,我们需要保护对象的一些属性,以防止它们被意外修改或访问。ES12 引入了私有字段,使我们能够定义只能在对象内部访问的属性。

私有字段是以 # 开头的属性名称。例如,#name 表示私有字段名为 name。私有字段只能在类内部访问,而在类的外部无法访问。这使得我们可以更好地控制对象的状态,从而提高代码的可维护性和安全性。

在私有字段中,我们可以使用 Getters 和 Setters 来定义一些逻辑,以便在读取或设置属性时执行。Getters 和 Setters 可以让我们更好地控制对象的状态,从而确保代码的正确性和可靠性。

下面是一个示例,展示了如何在 ES12 中使用私有字段和 Getters、Setters:

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

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

在这个示例中,我们定义了一个名为 Person 的类,它有两个私有字段:#name 和 #age。我们使用构造函数来初始化这些字段。然后,我们定义了 Getters 和 Setters,以便在读取或设置属性时执行一些逻辑。在这种情况下,我们验证了 name 和 age 的类型和值,并抛出了错误,以确保对象的状态正确。

除了私有字段和 Getters、Setters,我们还可以定义普通属性,它们可以被类的外部访问。但是,我们需要注意,普通属性不是私有的,它们仍然可以被修改或访问。因此,我们仍然需要使用私有字段来保护对象的状态。

总结

ES12 中引入了私有字段,使我们能够定义只能在对象内部访问的属性。我们可以使用 Getters 和 Setters 来定义一些逻辑,以便在读取或设置属性时执行。私有字段和 Getters、Setters 可以让我们更好地控制对象的状态,从而提高代码的可维护性和安全性。在使用私有字段时,我们需要注意普通属性仍然不是私有的,因此我们仍然需要使用私有字段来保护对象的状态。

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