1.开发一个模块管理引擎
let module1 = (function(){
let moduleList = {}
function define(name, modules, action){
modules.map((m, i) => {
modules[i] = moduleList[m]
})
moduleList[name] = action.apply(null, modules)
console.log(moduleList)
}
return {define}
})()
module1.define('hd', [], function(){
return {
first (arr) {
return arr[0]
},
max(arr) {
return arr.sort((a,b) => b-a)[0]
}
}
})
module1.define('lesson',['hd'], function(hd){
console.log(hd, 'ddd')
})
2.模块延时解析与严格模式
//默认严格模式
//延时解析
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="module">
console.log(document.querySelector('button')) // button
today = '5.3' // 报错
</script>
</head>
<body>
<button>五一快乐</button>
</body>
</html>