docs(class): fix private field #1159

This commit is contained in:
ruanyf
2023-07-13 16:27:54 +08:00
parent 8afac58982
commit d9183de442

View File

@@ -844,7 +844,7 @@ class C {
}
```
上面示例中,`in`运算符判断某个对象是否有私有属性`#foo`。它不会报错,而是返回一个布尔值。
上面示例中,`in`运算符判断某个对象是否有私有属性`#brand`。它不会报错,而是返回一个布尔值。
这种用法的`in`,也可以跟`this`一起配合使用。
@@ -853,12 +853,21 @@ class A {
#foo = 0;
m() {
console.log(#foo in this); // true
console.log(#bar in this); // false
}
}
```
注意,判断私有属性时,`in`只能用在类的内部。
注意,判断私有属性时,`in`只能用在类的内部。另外,判断所针对的私有属性,一定要先声明,否则会报错。
```javascript
class A {
m() {
console.log(#foo in this); // 报错
}
}
```
上面示例中,私有属性`#foo`没有声明,就直接用于`in`运算符的判断,导致报错。
子类从父类继承的私有属性,也可以使用`in`运算符来判断。