1
5
ES模块在第一次导入时只评估一次,这有效地使模块导出单例。
是工厂函数,在本例中完全有效,对于没有继承和方法的纯数据对象更可取。 类是一个合适的替代方法(比工厂函数效率低一点,但如果有方法,则是一个更好的选择):
因为react正在使用,所以可以安全地假设代码是用babel传输的,所以 class fields 建议可以使用。它们在ES6中不可用,并为上面列出的构造函数代码提供语法糖:
|
2
2
加载模块时,将对其进行缓存。所以,当其他人再次加载时,不会运行新代码。以前的出口货物刚刚退回。
如果每次都需要一个新实例,则必须导出一个可以调用的函数以获取新实例。没有其他方法,因为加载以前加载的模块不会运行任何其他代码—它只返回以前缓存的导出。 可以导出工厂函数(如示例中所示):
或者可以导出构造函数(调用方将使用
工厂函数或构造函数都可以正常工作。如果没有方法,而您只需要一个普通的对象,那么factory函数更简单。如果有方法,那么这个类可能更有意义。 |