如何在ES2015中导出实例

时间:2016-03-16 09:40:31

标签: javascript ecmascript-6

对于这个问题,我们考虑以下导出

List<Animal>

我想要更改,以便导出export { MyClassA, MyClassB, MyClassC } MyClassA个实例。现在我希望我能做到

MyClassB

哪个不起作用。看来这是不可能的。感觉有点像你想用一个实例参数调用一个函数

export { new MyClassA() as myclassa, new MyClassB() as myclassb, MyClassC };

但你必须写这个像

someFunction(new MyClassA());

现在因为let myclassa = new MyClassA(); someFunction(myclassa); 确实有用,我希望someFunction(new MyClassA())

可以表达类似的内容

在我将其重写为

之前
export

我很好奇我尝试过的东西是否有可能?

3 个答案:

答案 0 :(得分:2)

你可以:

export let myInstanceA = new MyClassA();

据我所知。

答案 1 :(得分:1)

我认为没有es6导入语法直接支持它。但你能做的是:

  • 如果您想成为单身人士,可以在导出之前将其改为:

    // in file.js class A {...} export const a = new A(); // use it import {a} from './file';

  • 如果您想成为多个实例,可以将其导出,然后在外部实例化,例如:

    // in file.js export class A {...} // use it import {A} from './file'; let a1 = new A(); let a2 = new A();

答案 2 :(得分:1)

模块导出绑定,而不是实际值。您不需要显式绑定的唯一情况是默认导出:

export default class { ... };

export default 1;

所以以下内容也应该有效:

export default new MyClassA();

当然,只有一个默认导出,因此在您的情况下,您需要先创建绑定。如果您按照自己的方式或其他建议的方式来做,由您决定。