<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>04模块扩展</title>
<link rel="stylesheet" href="">
</head>
<body>
<script type="text/javascript">
/*
扩展(放大模式)
*/
var module1 = (function(){
function demo1(){
console.log("demo1");
}
function demo2(){
console.log("demo2");
}
return {
demo1: demo1,
demo2: demo2
}
})();
// 对于一个程序而言,一个module肯定不能完成所有的事情
// 如果现在需要扩展?扩展的三种方式
var module2 = (function(module1){
//方式一:直接调用module1
function demo3(){
module1.demo1();
}
//方式二:module2自己本身扩展
function m2Demo(){
console.log("m2demo");
}
//方式三:module2中挂载到module1身上
module1.demo4 = function(){
console.log('m2M1Demo4');
}
return {
demo3:demo3,
m2Demo:m2Demo,
module1:module1
}
})(module1 || {});//不是每个模块都有返回值,若传入的参数为undefined或null,则传入参数为{}
module2.demo3();
module2.m2Demo();
module2.module1.demo4();
</script>
</body>
</html>