# 模块化

# 初期:全局变量时代

<script src="jquery.js"></script>
<script src="main.js"></script>
<script src="other.js"></script>
1
2
3

问题:变量冲突,污染全局作用域,不利于多人开发及维护

# 模块化雏形:立即执行函数

使用IIFE(Immediately-Invoked Function Expression)创建私有作用域,避免全局命名污染

(function() {
  // ...
})()
1
2
3

jQuery早期的依赖处理以及模块加载方案就是IIFE

# CommentJS

  • 模块定义:提供了exports对象用于导出当前模块的方法或变量
  • 模块引用: 定义了require()方法,这个方法接收模块标识,以此将一个模块引入到当前运行环境中
  • 模块标识

# AMD

# ES6模块化

# 参考

上次更新: 2024/4/16 11:23:24