【发布时间】:2021-06-14 05:28:02
【问题描述】:
我们是否仍然不能使用比 that 这样的古老变量更优雅的方式来访问具有嵌套类的外部 this,尤其是在涉及私有类字段时?
演示的简化示例可以是;
class Person {
#Ofset;
#H;
constructor(name) {
var that = this;
this.name = name;
this.#H = class {
constructor(n) {
that.#Ofset = Math.random();
this.age = n + that.#Ofset;
};
ofset() {return that.#Ofset}; // accessing outer class's private
}; // member from the inner class's
}; // prototype
setAge(n) {
return new this.#H(n);
}
};
var p = new Person("Joe").setAge(10);
console.log(p.age); // 10.09289026855164
console.log(p.ofset()); // 0.09289026855163951
在我的场景中,内部类实例应该能够获取和设置外部类私有字段#Ofset。
所以这就像这样工作得很好,但我想知道是否存在更惯用的解决方案。
【问题讨论】:
标签: javascript nested this inner-classes private-methods