我想从派生类访问基类的私有字段而不将它们公开(在其他语言中称为“受保护”)。
考虑以下类:
class Animal {
#privateProp;
constructor() {
this.#privateProp = 12;
}
}
现在扩展类:
class Cat extends Animal {
constructor() {
super();
}
doIt() {
console.log(this.#privateProp) // 1 below
console.log(super.#privateProp) // 2 below
}
}
我想像受到保护一样执行:
new Cat().doIt();
但是得到(分别):
- 未捕获的语法错误:必须在封闭类中声明私有字段“#privateProp”
- 未捕获的 SyntaxError:意外的私有字段
请注意,当 privateProp 公开时,此代码将完美运行,但我想实现类似受保护的行为并像任何支持继承的语言一样访问“私有”字段。
任何帮助将不胜感激。