commjs与ES6模块化实现
CommonJS的模块化实现
CommonJS需要nodeJS的依支持。
> aaa.js
```javascript
//CommonJS需要nodeJS支持
var name = '小明'
var age = 22
function sum(num1, num2) {
return num1 + num2
}
var flag = true
if (flag) {
console.log(sum(10, 20))
}
// module.exports = {
// flag : flag,
// sum : sum
// }
//导出对象
module.exports = {
flag,
sum
}
```
使用`module.exports = {}`导出需要的对象。
> mmm.js
```javascript
//导入对象,nodejs语法,需要node支持,从aaa.js取出对象
var {flag,sum} = require("./aaa")
console.log(sum(10,20));
if(flag){
console.log("flag is true");
}
```
使用 `var {flag,sum} = require("./aaa")`获取已经导出的对象中自己所需要的对象。
## ES6的模块化实现
如何实现模块化,在html中需要使用`type='module'`属性。
```html
<script src="aaa.js" type="module"></script>
<script src="bbb.js" type="module"></script>
<script src="mmm.js" type="module"></script>
```
此时表示aaa.js是一个单独的模块,此模块是有作用域的。如果要使用aaa.js内的变量,需要在aaa.js中先导出变量,再在需要使用的地方导出变量。