使用ES6模块进行参数导入?

时间:2015-05-06 13:05:38

标签: javascript ecmascript-6 ecmascript-harmony

ES6为Javascript带来了一个不错的模块系统。模块定义如下:

export default {
   ....
};

可以使用import myLib from "myModule"轻松导入源代码。

但是如果模块导出这样的“构造函数”函数:

export default ( actions ) =>  Reflux.createStore ( {

    state: {
         .....
    },

    config: {
         .....
    },

    init: function() {
        this.listenToMany ( actions );
    },
}

您可以导入构造函数,然后使用

执行它
import MyStoreConstructor from "./datastore";
var store = MyStoreConstructor(actions);

还有更优雅的方法吗?

1 个答案:

答案 0 :(得分:2)

你并没有真正出口一个构造函数,它更像是一个工厂(而且应该是小写的好样式)而且我不认为它比那。工厂将如何知道这些行动?除了模块最多只评估一次(至少在我所知道的每个模块系统中),以避免不必要的副作用 - 每个后续请求都将获得一个缓存版本的排序。您可以使用像angularjs这样的依赖注入库,但这是一个单独的概念而不是模块。

相关问题