在 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