AMD格式是否要求模块为单件

Does AMD format require that modules are singletons?

本文关键字:模块 单件 格式 是否 AMD      更新时间:2023-09-26

AMD规范中是否有任何规定要求模块必须提供相同的对象?假设一个需要的模块是提供给所有需要的模块的单个实例似乎是一种相当常见的做法,但有什么可以防止模块加载器将加载的模块视为缓存的(可能在某个时候重新加载它们)?

例如(假设地说),AMD加载程序是否可以保证将消息总线模块的同一实例分布在不同的依赖模块中,以便它们可以使用它来相互发送消息?

是的,模块应该是singleton。

来自规格:

define()函数

工厂

第三个参数factory是一个函数,应该执行它来实例化模块或对象。如果工厂是一个函数,它应该只执行一次。如果工厂参数是一个对象,则应将该对象指定为模块的导出值。