我刚刚读完了这篇有关JavaScript模块的文章。我理解CommonJS模块是同步加载的,而AMD模块是异步加载的。
但我不明白的是,如果我按照CommonJS格式编写模块,它如何变得“神奇地同步”?或者如果我按照AMD格式编写模块,它又如何变得“神奇地异步”?我的意思是,JavaScript甚至没有一个“define”或“require”关键字。它们只是规范,而不是库。
我的理解是,模块加载的行为取决于模块加载器,而不是模块的结构。如果是这样的话,为什么要为不同类型的模块遵循编码模式呢?
如果我的上述假设是正确的,那么为什么会有UMD规范呢?我的意思是,如果脚本基于其所在的环境进行加载,那么为什么要制定通用模块加载规范呢?
有人能帮我解决这个困惑吗?
但我不明白的是,如果我按照CommonJS格式编写模块,它如何变得“神奇地同步”?或者如果我按照AMD格式编写模块,它又如何变得“神奇地异步”?我的意思是,JavaScript甚至没有一个“define”或“require”关键字。它们只是规范,而不是库。
我的理解是,模块加载的行为取决于模块加载器,而不是模块的结构。如果是这样的话,为什么要为不同类型的模块遵循编码模式呢?
如果我的上述假设是正确的,那么为什么会有UMD规范呢?我的意思是,如果脚本基于其所在的环境进行加载,那么为什么要制定通用模块加载规范呢?
有人能帮我解决这个困惑吗?