# ES5模块化—立即执行函数封装
可以利用立即执行函数解决全局变量命名重复和模块化问题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script src="./js/a.js"></script>
<script src="./js/b.js"></script>
</body>
</html>
// js/a.js
var ModuleA = (function () {
var name = "aaa";
var flag = true;
var sum = function (num1, num2) {
return num1 + num2;
};
var obj = {};
obj.name = name;
obj.flag = flag;
obj.sum = sum;
return obj;
})();
// js/b.js
var ModuleB = (function () {
var name = "bbb";
console.log(ModuleA.name);
console.log(ModuleA.flag);
console.log(ModuleA.sum(1, 2));
console.log("bbbbbb comoe on");
var obj = {};
obj.name = name;
return obj;
})();
上述就是模块化的最基础封装