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