使用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();