常見寫法
代碼量少的情況下倒是無所謂,一單代碼量大,全局變量變量名容易沖突。
方法之間沒有明顯的關(guān)系
<script type="text/javascript">
function open(){ ... }
function close(){ ... }
</script>
對(duì)象寫法
將相關(guān)的方法封裝為一個(gè)對(duì)象
通過方法鏈調(diào)用,如:module.open();
會(huì)暴露全部?jī)?nèi)部成員,外部代碼可以改變內(nèi)部變量的值,如:module._count = -1
<script type="text/javascript">
var module = new Object({
_count: 0,
function open(){ ... },
function close(){ ... }
});
</script>
立即執(zhí)行函數(shù)寫法
console.info(module._count); //undefined
<script type="text/javascript">
var module = (function(){
var _count = 0;
var open = function(){};
var close = function(){};
return {
open: open,
close: close
}
})();
</script>
放大模式
一個(gè)模塊很大,必須分成幾個(gè)部分
一個(gè)模塊需要繼承另一個(gè)模塊
為 module
模塊添加了一個(gè)新方法 open()
,然后返回新的 module
模塊
<script type="text/javascript">
var module = (function (mod){
mod.open = function(){ ... };
return mod;
})(module);
</script>
寬放大模式
無法知道哪個(gè)部分會(huì)先加載
第一個(gè)執(zhí)行的部分有可能加載一個(gè)不存在空對(duì)象
立即執(zhí)行函數(shù)
的參數(shù)可以是空對(duì)象。
<script type="text/javascript">
var module = (function (mod){
mod.open = function(){ ... };
return mod;
})(window.module || {});
</script>
輸入全局變量
模塊內(nèi)部最好不與程序的其他部分直接交互
為了在模塊內(nèi)部調(diào)用全局變量,必須顯式地將其他變量輸入模塊。
<script type="text/javascript">
var module = (function ($, YAHOO){
...
})(jQuery, YAHOO);
</script>
最后編輯于 :2017.12.06 06:40:26
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者 平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。