我有一个类 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,它很快就会搞砸服务器
最佳答案
你应该用 classA 扩展 classB
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();
更新: 我认为绑定(bind) 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)();
关于JavaScript ES2015 : Instanciate a class and use variables from class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49217933/