1.具有特定功能的js文件
2.将所有数据和功能都封装住在一个函数内部
3.只想外部暴露一个包含n个方法的对象(或者是函数)
4.模块的的使用者只需通过模块暴露的对象,调用暴露的对象的方法来实现对应功能
JS文件
(function fn1(){
var msg = 'MY atguigu';
function doSomething(){
console.log('doSomething()'+msg.toUpperCase())
}
function doSomething(){
console.log('doOtherthing()'+msg.toLowerCase())
}
window.myModule = {
doSomething:doSomething;
dotherthing:dotherthing;
}
}
)()
调用只需要
window.doSomething()
或window.doTherTHING()