导入导出
在script标签内使用import的时候,必须在script标签加上type = “module”
当使用script标签加上type = "module"的时候,是当所有模块都加载进来才进行工作的,也就是如果html在script标签下面也是可以正常运行的,他是后解析的
当使用script标签加上type = "module"的时候,script标签里面的内容都是默认使用严格模式的
当使用script标签加上type = "module"的时候,script标签里面的内容是拥有独立作用域的,每一个type = "module"的script都是不同的独立作用域
在script标签内使用import 导入内容的时候同一个文件的内容的时候,只会执行一次这个文件
批量导入
import * as aa from ''
aa.name
按需动态加载
import ('地址').then(res=>{
})
简单版本模块管理工具
<script>
let module = (function () {
let modulesList = {}
let moduleActions = []
function define(name, modules, action) {
modules.map((item,i)=>{
if (modulesList[item]) {
moduleActions[i] = modulesList[item]
}
})
modulesList[name] = action.apply(null, moduleActions)
}
return { define }
})()
module.define('aa', [], function () {
return {
max(arr) {
return arr.sort((a, b) => b - a)[0]
}
}
})
module.define('bb',['aa','qq'],function(res){
console.log( res.max([1,3,9,8]));
})
</script>