- 概念
对于一个复杂的应用程序,遵循确定的规则将其拆分到几个互相独立的文件中。
这些文件应该具有原子特性。(内部逻辑相似,对外暴露方法或者属性)
- 类型
- 利用对象
- CommonJS - 文件即模块,同步。
- AMD - require实现代码的模块加载,define将代码定义为模块。依赖前置原则。
- CMD - 可同步可异步,遵循依赖就近原则,使用前引入即可。
- UMD - 同时使用AMD规范与CommonJS规范。
- ES模块
设计思路:静态化。保证在编译时就确定模块之间的依赖关系,而不是运行时。
ES模块输出的是值的引用,而不是值的拷贝。
通过分析可以得出代码中变量所属的作用域及他们之间的引用关系,进而可以推导出变量和导入依赖变量之间的引用关系。