javascript - 在一个对象在另一个对象中声明之前传递该对象

标签 javascript ecmascript-6

我目前发现自己处于这样的情况:必须先传入一个对象,然后再在另一个对象中声明该对象。我到底该怎么做?下面是一个例子。这两个对象一起工作,但我不知道如何传递甚至不存在的东西。

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";
    }
}

最佳答案

您可以稍后再设置它们。例如:

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;
    }
}

您不必通过这些方法名称来调用它们,但其想法只是等到调用每个构造函数后设置一些属性。

关于javascript - 在一个对象在另一个对象中声明之前传递该对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165331/

相关文章:

php - IE 所需的 CSS/Javascript 下拉导航修复

javascript - 可以让 javascript 对象返回值而不是 self 吗?

jQuery .on 事件处理程序和 ES2015 箭头函数

javascript - Javascript 异步函数中的等待问题

javascript - 带单选按钮的过滤功能

javascript - 将 Prop 传递给 makeStyles 并在 Material UI 的 CSS 速记属性中使用

javascript - 如何实现具有属性子集的类?

javascript - ES6 Set 和 WeakSet 有什么区别?

javascript - ES6 箭头函数和函数内的词法作用域

javascript - 访问函数中的 fetch() 数据