我目前发现自己处于一种情况,我必须在一个对象传入另一个对象之前传入它。我到底该怎么做?以下是一个例子。这两个对象协同工作,但我无法弄清楚如何传递甚至不存在的东西。
class fooBar() {
this.alpha = new alpha(this.beta);
this.beta = new beta(this.alpha);
}
class alpha {
constructor(beta) {
this.beta = beta;
}
getName() {
return "alpha";
}
}
class beta {
constructor(alpha) {
this.alpha = alpha;
}
getName() {
return "beta";
}
}
答案 0 :(得分:1)
您可以稍后再设置它们。例如:
class fooBar() {
this.alpha = new alpha();
this.beta = new beta();
this.alpha.setBeta(this.beta);
this.beta.setAlpha(this.alpha);
}
class alpha {
constructor(beta) {
if(beta) {
this.beta = beta;
}
}
getName() {
return "alpha";
}
setBeta(beta) {
this.beta = beta;
}
}
class beta {
constructor(alpha) {
if(alpha) {
this.alpha = alpha;
}
}
getName() {
return "beta";
}
setAlpha(alpha) {
this.alpha = alpha;
}
}
您不必通过这些方法名称来调用它们,但这个想法只是等到您调用每个构造函数来设置某些属性之后。
答案 1 :(得分:0)
constructor(beta) {
this.beta = beta;
if(!this.beta){
var that=this;
let jobBeta=setInterval(()=>{
if(beta || beta ===0){
that.beta=beta;
clearInterval(jobBeta);
}
},1)
}
}
在另一个类alpha
中也要做同样的事情(反之亦然)