js模塊模式

當(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)的變量,同時還可以使我們的代碼更具有意義性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • 在js的懶漢式單例模式中,其實也用到了另一種設(shè)計模式,即模塊模式。在傳統(tǒng)軟件工程中,模塊模式被定義為給類提供私有和...
    200813閱讀 469評論 0 0
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,827評論 2 17
  • 我路過江南,風(fēng)景舊曾諳。 說來都是很久之前的事情。一個青蔥少年,去了趟江南,卻并非為了好風(fēng)光,打工歇息之余,遛了一...
    屋頂上的怪蜀黍閱讀 266評論 0 0