Node.js 函数内部的访问类

Node.js 函数内部的访问类,node.js,function,class,ecmascript-6,Node.js,Function,Class,Ecmascript 6,我有一个ready()函数,它包含一个es6类。 我想在函数之外实例化这个类,但是我没有成功地使它工作 我不想使用返回函数,因为该函数可以有多个类 下面是我想做的一个例子: function ready(api) { class A extends api.C { contructor() { this.foo = "bar"; } } class B extends A { contructor(

我有一个
ready()
函数,它包含一个es6类。 我想在函数之外实例化这个类,但是我没有成功地使它工作

我不想使用返回函数,因为该函数可以有多个类

下面是我想做的一个例子:

function ready(api) {
    class A extends api.C {
        contructor() {
            this.foo = "bar";
        }
    }

    class B extends A {
        contructor() {
            this.bar = "foo";
        }
    }
}

let classA = ready.A; // Here is the problem : I would like to access to the class prototype
原因是我的应用程序有一些使用
remi
npm包的插件,我想导出所有插件之间共享的类。 我不知道这是否可能,有人有主意吗

[编辑]:

首先感谢大家的hep,事实上我需要在我的问题上更加准确。 没错,我可以通过经典的
return
返回这两个类。但让我解释一下我到底想做什么:

  • 我有一个核心应用程序,其中有一些插件。插件可以在内部集成到核心,也可以通过经典的NPM安装。如上所述,我使用
    remi
    插件加载程序
  • 所需的规则如下:每个插件通过回调获得一个核心API访问。每个插件都可以公开在其他插件中使用的类。每个插件都可以继承那些公开(即导出)的插件
下面是我如何描述插件的:

/**
 * This class is a sample plugin
 * @class
 */
class Sample {
    constructor(api) {
        this.api = api;
    }


    /**
     * Shows a test log
     */
    test() {
        console.log("======> I'm working !");
    }
}

function loaded(api) {
    let s = new Sample(api);
}

module.exports = (api, options) => {

};

module.exports.attributes = {
    loadedCallback: loaded,
    name: "sample-plugin",
    version: "0.0.0",
    category: "misc",
    description: "I'm a sample plugin",
    classes: [Sample]
};
核心插件管理器将第一次加载所有插件,并将导出到
classes
attributes属性的所有类原型注册到一个数组中。 然后调用
load(api)
函数,可以通过
api.classes
对象实例化类。 在另一个插件中,我可以这样做:

function loaded(api) {
    let sample = new api.classes.Sample(api);   
}
我可以实例化另一个插件中描述的类。 这就是我的想法。 不过,我想对多重继承进行更复杂的API使用,例如:

  • 插件A公开了类A
  • 插件B公开类B扩展A
  • 插件C公开了类C和类B

更清楚地说,我想全局导出一些类,以获得NPM模块之间的共享访问权

您可以从
ready
函数返回class
a
,因此在调用
ready
后,您可以访问
a

function ready(api) {
    class A extends api.C {
        contructor() {
            this.foo = "bar";
        }
    }

    class B extends A {
        contructor() {
            this.bar = "foo";
        }
    }
    return {A : A};
}

let classA = ready(api).A;

我不想使用返回函数,因为该函数可以有多个类-这是什么意思?为什么不
返回{A,B}?不,如果不首先调用
ready
并传入一个API来实际创建类,这显然是不可能的。还有,为什么不在内部使用类呢?