我有一个 B 类,它实现了另一个 A 类。
在A类中我需要使用B类中定义的变量
class classA {
methodA() {
console.log(parentClass.variableToRetrieve);
}
}
class classB {
constructor() {
this.variableToRetrieve = 1;
this.A = new classA();
}
}
var B = new classB();
B.A.methodA();
我应该在 classA.methodA 中使用什么并在控制台中看到 1 ?
我已经想过在 classA 构造函数中传递 B 对象,或者传递值,但是由于我可以有数百个变量和(可能)数百万个 classA,它会很快使服务器过载
你应该用 A 类扩展 B 类
class classA {
methodA() {
console.log('parentClass.variableToRetrieve');
}
}
class classB extends classA {
constructor() {
super()
this.variableToRetrieve = 1;
}
method() {
this.A = new classA();
}
}
var B = new classB();
B.methodA();
更新: 我认为绑定 classB 将解决问题。
class classA {
methodA() {
console.log(this.variableToRetrieve);
}
}
class classB {
constructor() {
this.variableToRetrieve = 4;
}
}
var B = new classB();
var A = new classA();
A.methodA.bind(B)();
您的 A 类必须扩展 B 类才能做到这一点