AMD规范中是否有任何内容表明必须提供相同对象的require'd模块?似乎相当普遍的做法是假设require'd模块是提供给所有需要模块的单个实例,但有什么可以防止模块加载器将加载的模块视为仅缓存(可能在某些时候重新加载它们)? / p>
例如(假设说),AMD加载器是否可以保证在各种不同的依赖模块中分发相同的消息总线模块实例,这样他们就可以用它来发送彼此的消息了?
答案 0 :(得分:1)
是的,模块应该是单身。
来自spec:
define()函数
...
<强>工厂强>
第三个参数factory是一个应该执行以实例化模块或对象的函数。如果工厂是一个功能,它应该只执行一次。如果工厂参数是对象,则应将该对象指定为模块的导出值。