當一個javascript文件很大的時候酱鸭,會出現(xiàn)一些問題:
1.里面定義了大量的變量李请,你不得不把變量的名字寫的越來越長交煞。
2.系統(tǒng)讀取全部javascript文件速度很變慢。
而解決這兩個問題最好的有一個很不錯的方式就是引入模塊模式碌秸。
一、格式
模塊模式使用了匿名閉包的方式
var model=(function(){
...//定義一些私有變量
return {
....//以對象的方式返回悄窃,返回值可以有函數(shù)內(nèi)部的東西
}
})();//可以傳參數(shù)
其中模塊內(nèi)可以定義一些私有變量讥电,return出來的屬性是共有屬性。
二轧抗、例子
下面我以學(xué)生為例
var student=(function(day){
var myStudyDay=day;
function study(){
myStudyDay++;
}
return {
mygrade:function(){
return myStudyDay;
},
study:study
}
});
var qq=student(50);
console.log(qq.mygrade());//50
qq.study();
console.log(qq.mygrade());//51
console.log(myStudyDay);//error:myStudyDay is not defind
myStudyDay是student模塊的私有屬性恩敌,study是該模塊的私有函數(shù),防止了全局污染横媚,在函數(shù)外部不能修改這兩個的值纠炮。
三月趟、高級
夢想決定高度,想要讓你的模塊更大試試這樣
var student=(function(day){
var myStudyDay=day;
function study(){
myStudyDay++;
};
var grade=(function(){
var grade=90;
return{
mygrade:function(){
return grade
}
}
})//模塊里面套一個模塊
return {
mygrade:function(){
return myStudyDay;
},
study:study
}
});
模塊里面套模塊恢口,這樣可以讓你的模塊可以變得特別大孝宗。
使用模塊模式不僅可以保護一些模塊內(nèi)的變量,同時還可以使我們的代碼更具有意義性耕肩。