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);有没有更优雅的方法来做到这一点呢?
发布于 2015-05-06 21:11:55
你并不是真的在输出一个构造函数,它更像是一个工厂(为了更好的风格,它应该是小写的),我不认为它会变得比这更瘦。工厂是如何知道这些行为的?此外,模块最多只评估一次(至少在我所知道的每个模块系统中),以避免不必要的副作用--每个后续请求都将获得一个缓存版本的排序。您可以使用像angularjs这样的依赖项注入库,但这是一个与模块不同的概念。
https://stackoverflow.com/questions/30077673
复制相似问题