最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript中運用閉包和自執(zhí)行函數(shù)解決大量的全局變量問題

 更新時間:2010年12月30日 19:56:15   作者:  
做為一個javascript新手,為了程式的簡便,可能會在javascript中運用了大量的全局變量,雖然一時看來,問題解決了,而且也可能讓編碼變得更加的簡單。
但是從全局看來,這樣會導致出現(xiàn)一些讓我們難以掌控的情況的出現(xiàn):變量同名、多個函數(shù)共用一個全局變量后的值的變換……等等。所以,有時候,對于一些簡單的全局變量,我們可以通過另一種方式來處理——用自執(zhí)行函數(shù)+閉包的方法來解:

比如:我們要在網(wǎng)頁加載時給出一個提示,在網(wǎng)頁關(guān)閉時給出另一個提示
下面的代碼,實現(xiàn)了以上功能
復制代碼 代碼如下:

var msg1 = "歡迎光臨!"; // 定義一個全局變量
var msg2 = "再見!" //定了另一個全局變量
window.onload = function() {
  alert(msg1);
}
window.onunload = function() {
  alert(msg2);
}

這段代碼中已經(jīng)用到了兩個全局變量。而只是為了實現(xiàn)一個簡小的功能。
而且,全局變量太多,我們必須記?。簃sg1是歡迎時的變量,msg2是關(guān)閉時變量……如果變量更多,我們還能記得住嗎?


下面是同樣的功能,不過運用了自執(zhí)行函數(shù)+閉包方法:
復制代碼 代碼如下:

(function() {
  var msg = "Hello, world!";
  window.onload = function() {
    alert(msg);
  }
})();

(function() {
  var msg = "Hello, world!";
  window.onunload = function() {
    alert(msg);
  }
})();

后者做法,雖然代碼增長了,但是:
1)msg變量只在各自的自執(zhí)行函數(shù)內(nèi)有效。不會和其它全局變量之間產(chǎn)生混淆。
2)代碼的結(jié)構(gòu)變得更加的清晰。
3)解決了大量使用全局變量的情況。

以上只是本人的一點認識,希望真正的高手給出點評!

相關(guān)文章

最新評論

宝丰县| 柳江县| 江安县| 宜州市| 通渭县| 宜丰县| 修武县| 塔河县| 无锡市| 靖江市| 平湖市| 吉林市| 卫辉市| 凤翔县| 志丹县| 柳林县| 六枝特区| 佳木斯市| 丹棱县| 铁力市| 阿鲁科尔沁旗| 定陶县| 顺昌县| 临湘市| 巴林左旗| 若羌县| 长岛县| 思茅市| 抚顺市| 白水县| 安庆市| 杭锦旗| 阳朔县| 抚顺市| 平乐县| 仪陇县| 阿鲁科尔沁旗| 林西县| 方正县| 康平县| 浪卡子县|