// 模块文件a// 模块文件b
// 文件内部可能使用了 a 文件内部方法,所以需要在 a 文件后面引入// 功能整合文件main
// 文件是整合文件,使用了 a b 文件内的方法,所以 a b 需要引入在 main 文件前面// a.js
var num = 100;
function af1(){
console.log('a文件内的af1方法')
}
function af2(){
console.log('a文件内的af2方法')
}// b.js
function bf1(){
af2();
console.log('使用了a文件内的af2方法')
}
function bf2(){
console.log('a文件内的bf2方法')
}// main.js
console.log(num) // num 是一个全局变量,所以在main文件内可以使用
af1();
bf1();
// 模块文件a// 模块文件b
// 文件内部可能使用了 a 文件内部方法,所以需要在 a 文件后面引入// main 文件是整合文件,使用了 a b 文件内的方法,所以 a b 需要引入在 main 文件前面// 模块文件a.js
(function(){
// 自执行函数执行结束后,变量自动销毁
var num = 100;
function af1(){
console.log('a文件内的af1方法')
}
function af2(){
console.log('a文件内的af2方法')
}// 将变量和方法挂载在全局上,其他文件可进行使用
window.madA={
af1,
af2,
num
}
})()// 模块文件b.js
(function(madA){
// 这里的参数接收的是自执行函数参过来的参数
function bf1(){
madA.af2();
console.log('使用了a文件内的af2方法')
}
function bf2(){
console.log('a文件内的bf2方法')
}
// 将其他文件需要用到的方法挂在在全局上
window.madB={
bf1,
bf2
}
// 传入其他模块文件挂载在全局上的对象名,在函数内进行使用内部变量和方法
})(madA)// 模块文件main.js
(function(madA,madA){
console.log(madA.num) // num 是其他文件挂载在全局上的变量,所以在main文件内可以使用
madA.af1();
madB.bf1();
})(madA,madB)