我刚刚读完这篇关于 Javascript module的文章。我可以理解,CommonJS module是同步加载的,而 AMD module是异步加载的。
我不明白的是,如果我以 CommonJS 格式编写module,我如何才能神奇地同步,或者如果我以AMD 格式编写它,它如何神奇地变为异步。我的意思是 javascript甚至没有defineorrequire关键字。它们只是规格而不是库。
我的意思是module加载的行为取决于module加载器,而不是module的结构。如果是这种情况,为什么要为不同类型的module遵循编码模式?
我是否正确地假设 NodeJS 世界中的所有库都是同步加载的,无论它们是以什么格式编写的。并且浏览器空间中的所有module都是异步加载的。
如果我的上述假设是正确的,那么为什么甚至有 UMD 的规范?我的意思是,如果脚本是根据它所在的环境加载的,那么为什么要为通用module加载制定规范?
有人可以帮我解决这个困惑吗?