国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript中運用閉包和自執行函數解決大量的全局變量問題

2019-11-21 00:00:46
字體:
來源:轉載
供稿:網友
但是從全局看來,這樣會導致出現一些讓我們難以掌控的情況的出現:變量同名、多個函數共用一個全局變量后的值的變換……等等。所以,有時候,對于一些簡單的全局變量,我們可以通過另一種方式來處理――用自執行函數+閉包的方法來解:

比如:我們要在網頁加載時給出一個提示,在網頁關閉時給出另一個提示
下面的代碼,實現了以上功能
復制代碼 代碼如下:

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

這段代碼中已經用到了兩個全局變量。而只是為了實現一個簡小的功能。
而且,全局變量太多,我們必須記住:msg1是歡迎時的變量,msg2是關閉時變量……如果變量更多,我們還能記得住嗎?


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

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

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

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

以上只是本人的一點認識,希望真正的高手給出點評!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛隆县| 大石桥市| 安远县| 东辽县| 天水市| 江源县| 华亭县| 金阳县| 正蓝旗| 丹寨县| 固镇县| 泸西县| 钦州市| 永康市| 曲松县| 尼勒克县| 平陆县| 苍山县| 云梦县| 连平县| 札达县| 镇巴县| 高要市| 翁源县| 金寨县| 平遥县| 三台县| 宝山区| 新宾| 怀集县| 吉木萨尔县| 谷城县| 和龙市| 孟村| 竹溪县| 芒康县| 湟源县| 博乐市| 龙江县| 和顺县| 望都县|