@Dale-Lin
2022-03-08T07:22:31.000000Z
字数 559
阅读 587
深入理解ES6
Class 中的属性默认是 public 的,可以被 class 外部访问和修改。一个 Stage 3 提案允许 class 拥有以 # 开头的 private 属性/方法。
私有属性只能在类的最开始声明,只能被实例方法(包括 constructor)访问。
class ClassWithPrivate {#privateField = 'private field';sayPrivateField() {console.log(this.#privateField)}// static 属性只能被 static 方法访问static #privateStaticField = 'private static';static sayPrivateStaticField() {console.log(this.#privateStaticField)}}const a = new ClassWithPrivate()a.#privateField // throw Errora.sayPrivateField() // 'private field'ClassWithPrivate.#privateStaticField // throw ErrorClassWithPrivate.sayPrivateStaticField() // 'private static'
