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

首頁 > 語言 > JavaScript > 正文

JavaScript防止全局變量污染的方法總結

2024-05-06 15:32:11
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript防止全局變量污染的方法。分享給大家供大家參考,具體如下:

javaScript 可以隨意定義保存所有應用資源的全局變量。但全局變量可以削弱程序靈活性,增大了模塊之間的耦合性。

在多人協作時,如果定義過多的全局變量 有可能造成全局變量沖突,也就是全局變量污染問題,以下是兩種解決辦法

一. 定義全局變量命名空間

只創建一個全局變量,并定義該變量為當前應用容器,把其他全局變量追加在該命名空間下

var MY={};my.name={  big_name:"zhangsan",  small_name:"lisi"};my.work={  school_work:"study",  family_work:"we are"};

二 . 利用匿名函數將腳本包裹起來

(function(){  var exp={};  var name="aa";  exp.method=function(){    return name;  };  window.ex=exp;})();

前言

記得long long ago,剛剛開始寫JS的時候,我喜歡寫一些函數在JS文件里邊,然后通過script標簽引進來,在DOM節點上綁定onclick等事件,看了很多人寫的代碼,也大多是這樣。

后來會發現,當項目小的時候這么做為了快速開發是可以接受的,然而當很多人一起開發一個Javascript大應用的時候,你會發現不同的代碼風格跟全局變量會導致很多沖突,這是一個很痛苦的事情。

曾經的經歷

用過jQuery的人就知道其主要的變量符號就是$,沒錯!因此很多項目的開發人員也要學,就自己把$定義成別的含義了,我心里對其是無敵的鄙視跟厭惡。

我曾經拿過一個項目使用jQuery的,然后上頭要我使用一個已有的富文本編輯器,這樣就有兩個JS文件了

jquery.js和editor.js,于是我要開始寫該頁面的邏輯了,我發現editor.js里邊自定義了$符號,我原本想要把它直接替換成別的標志符,但是悲劇的是,它還有一些插件也會用到,混亂的結構導致我花了很多時間去解決這個沖突。

全局Window

我們都知道,在文件中直接定義的變量跟函數(不嵌套在任何域底下的)都是屬于全局的,也就是都在當前頁面的window變量底下。例如:

JS代碼

function test1(){}var name;function test2(){  i = 1;}

上邊代碼中的name,test1,test2和i都是屬于window底下的全局變量,也就是可以通過以下三種辦法訪問到它們:

1.直接訪問name,test1()等;

2.使用window["name"], window['test1']()等;

3.使用window.name,window.test1()等。

注意:上邊代碼中的i雖然是在test2函數里邊才出現的,因為其前面沒有使用var關鍵字,解釋器會認為它在test2的上一層定義的,依次查找上一層,直到找到window全局,如果發現還是未定義,那么將其掛在window底下成為了全局變量。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 安福县| 阿鲁科尔沁旗| 昌吉市| 巨鹿县| 阳山县| 红原县| 延边| 化州市| 安塞县| 本溪市| 华安县| 沁阳市| 遂溪县| 周宁县| 金阳县| 内乡县| 辉南县| 合作市| 喀什市| 鄯善县| 钟山县| 保定市| 泗水县| 双江| 黎平县| 建德市| 恩施市| 贞丰县| 澄江县| 县级市| 游戏| 喀喇| 枣强县| 桂平市| 富阳市| 衡阳县| 南澳县| 阜康市| 腾冲县| 晴隆县| 大渡口区|