因此,当他们创建es6类时,默认情况下它们只是将所有内容公开,这对我来说有点奇怪,但是鉴于我仍然使用较旧的基于es5样式范围的类,我就选择了它。
无论如何,几年后,我们都在班级中获得了私人成员,这似乎很棒,但是接下来您要看看synax:
somePublicVar = 10;
#somePrivateVar = 20;
正如您所看到的,我们现在必须在私有内容前加上井号/井号,这是一个非常奇怪的选择,因为JS具有public
和private
关键字供将来使用,因此现在我们要区分公共和私人,为什么现在不这样做。
public somePublicVar = 10;
private somePrivateVar = 20;
因此,我敢肯定有一个技术原因,但我仍在努力寻找它,因为现在看来是将public
和private
从保留更改为“使用”,从而使给定成员的访问修饰符更加明确和明显。
答案 0 :(得分:3)
FAQ官方回答:
为什么不是声明
private x
?这种声明是其他语言(特别是Java)使用的声明, 并暗示将使用
this.x
进行访问。假如说 并非如此(请参见上文),这会在JavaScript中默默创建 或访问公共字段,而不是抛出错误。这是一个 错误的主要潜在来源或无形的公共领域 本来打算是私人的。它也允许声明和访问之间的对称,就像 有公共场所:
class A { pub = 0; #priv = 1; m() { return this.pub + this.#priv; } }