我们有一个类A引用了类B,而类B引用了类A在调用require子句的同时在实例时间创建了一个循环,如何使用ThrustJS处理呢? (我们没有像NodeJS中的框架那样处理它。)
答案 0 :(得分:1)
如果您没有其他方法可以通过完全删除A到B或B到A的引用来摆脱循环引用。
然后一种解决方案是创建一个中间/代理模块或类,根据您的要求,该类或类是A和B类的组成或聚集。
给出:
class A {
b = new B();
}
class B {
a = new A();
}
然后,删除循环引用:
class A {
// some stuff
}
class B {
// some other stuff
}
class AB {
a = new A();
b = new B();
}
const ab = new AB();
ab.a;
ab.b;
答案 1 :(得分:0)
我的解决方案是要求在方法内部使用B,以防止在实例化类时使用ciclic引用。
class A {
testA(){
const b = require('b')
b.testB()
}
}
class B {
testB(){
const a = require('a')
a.testA()
}
}