[关闭]
@Dale-Lin 2022-03-08T15:22:31.000000Z 字数 559 阅读 348

私有Class属性

深入理解ES6


Class 中的属性默认是 public 的,可以被 class 外部访问和修改。一个 Stage 3 提案允许 class 拥有以 # 开头的 private 属性/方法。

私有属性只能在类的最开始声明,只能被实例方法(包括 constructor)访问。

  1. class ClassWithPrivate {
  2. #privateField = 'private field';
  3. sayPrivateField() {
  4. console.log(this.#privateField)
  5. }
  6. // static 属性只能被 static 方法访问
  7. static #privateStaticField = 'private static';
  8. static sayPrivateStaticField() {
  9. console.log(this.#privateStaticField)
  10. }
  11. }
  12. const a = new ClassWithPrivate()
  13. a.#privateField // throw Error
  14. a.sayPrivateField() // 'private field'
  15. ClassWithPrivate.#privateStaticField // throw Error
  16. ClassWithPrivate.sayPrivateStaticField() // 'private static'
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注