當(dāng)一個javascript文件很大的時候,會出現(xiàn)一些問題:
1.里面定義了大量的變量,你不得不把變量的名字寫的越來越長。
2.系統(tǒng)讀取全部javascript文件速度很變慢。
而解決這兩個問題最好的有一個很不錯的方式就是引入模塊模式。
一、格式
模塊模式使用了匿名閉包的方式
var model=(function(){
...//定義一些私有變量
return {
....//以對象的方式返回,返回值可以有函數(shù)內(nèi)部的東西
}
})();//可以傳參數(shù)
其中模塊內(nèi)可以定義一些私有變量,return出來的屬性是共有屬性。
二、例子
下面我以學(xué)生為例
<pre>
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
</pre>
myStudyDay是student模塊的私有屬性,study是該模塊的私有函數(shù),防止了全局污染,在函數(shù)外部不能修改這兩個的值。
三、高級
夢想決定高度,想要讓你的模塊更大試試這樣
<pre>
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
}
});
</pre>
模塊里面套模塊,這樣可以讓你的模塊可以變得特別大。
使用模塊模式不僅可以保護(hù)一些模塊內(nèi)的變量,同時還可以使我們的代碼更具有意義性。