使用JavaScript ES6,我想将几​​个类分离到我的应用程序中。我有一个main.js文件,希望在其中实例化类,然后能够在它们之间引用和调用方法。

我的问题是:执行此操作的最佳/标准方法是什么?我目前的方法如下:

在main.js中,我创建了一个实例化两个类的App类

import ClassOne from './ClassOne';
import ClassTwo from './ClassTwo';

export default class App {
    constructor () {
        this.one = new ClassOne(this);
        this.two = new ClassTwo(this);
    }
}
const app = new App();


然后在ClassOne.js中,我做这样的事情

export default class ClassOne {
    constructor (app) {
        this.app = app;
        this.app.two.callMethod();
    }
}


它当然可以工作,但是看起来很笨拙,还有更好的方法吗?

最佳答案

我建议在ClassOne和ClassTwo中使用二传手。这样,只有ClassOne和ClassTwo是彼此依赖的,而不是App的实例。

ClassOne.js

export default class ClassOne {
    setTwo (two) {
        this.two = two;
        this.two.callMethod();
    }
}


ClassTwo.js

export default class ClassTwo {
    setOne (one) {
        this.one = one;
        this.one.callMethod();
    }
}


main.js

import ClassOne from './ClassOne';
import ClassTwo from './ClassTwo';

export default class App {
    constructor () {
        this.one = new ClassOne();
        this.two = new ClassTwo();

        this.one.setTwo(this.two);
        this.two.setOne(this.one);
    }
}

const app = new App();

07-24 09:50
查看更多