繁体   English   中英

实例化并使用2个或更多JavaScript ES6类

[英]Instantiate and use 2 or more JavaScript ES6 classes

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

这当然有效,但它看起来stoopid及是否有这样做的更好的办法?

我建议在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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM