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

首頁 > 編程 > JavaScript > 正文

理運用命名空間讓js不產生沖突避免全局變量的泛濫

2019-11-20 14:29:06
字體:
來源:轉載
供稿:網友
為了避免變量之間的覆蓋與沖突,可以生成命名空間,命名空間是一種特殊的前綴,在js中,通過{ }對象實現。

在不同的匿名函數中,根據功能聲明一個不同的命名空間,每個匿名函數中GLOBAL對象的屬性都不直接掛在GLOBAL上,而是掛在次匿名函數的命名空間下,如:
復制代碼 代碼如下:

<script type="text/javascript">
var GLOBAL={}
</script>
<script type="text/javascript">
(function(){
var a=123, a1=256;
GLOBAL.A={}
GLOBAL.A.str=a;
})();
</script>

<script type="text/javascript">
(function(){
var b1=123, b2=256;
GLOBAL.B={}
GLOBAL.B.str=a;
})();
</script>

如果同一個匿名函數中的程序非常復雜,變量名很多,命名空間可以進一步擴展,生成二級命名空間:
復制代碼 代碼如下:

<script type="text/javascript">
var GLOBAL={}
</script>
<script type="text/javascript">
(function(){
var a=123, a1=256;
GLOBAL.A={};
GLOBAL.A.CAT={};
GLOBAL.A.DOG={};
GLOBAL.A.CAT.name="mini";
GLOBAL.A.CAT.move=function(){
}
GLOBAL.A.DOG.name="mini";
GLOBAL.A.DOG.move=function(){
}
})();
</script>

因生成命名空間是非常常用的功能,可以進一步將生成命名空間的功能定義成一個函數,方便調用,如下:
復制代碼 代碼如下:

<script type="text/javascript">
var GLOBAL={}
GLOBAL.namespace=function(str){
var arr=str.split("."), o=GLOBAL;
for(i=arr[0]=="GLOBAL"?1:0;i<arr.length; i++){
o[arr[i]]=o[arr[i]] || {};
o=o[arr[i]];
}
}
</script>

調用命名空間具體操作:
復制代碼 代碼如下:

<script type="text/javascript">
//=============================================================
// 功能A
// 工程師甲
// email:ctkl68945@gmail.com msn:ctkl68945@hotmail.com"
// 2012-11-06
//=============================================================

(function(){
var a=123, a1="hello world";
GLOBAL.namespace("A.CAT");
GLOBAL.namespace("A.DOG");
GLOBAL.A.CAT.name="mini";
GLOBAL.A.CAT.move=function(){
}
GLOBAL.A.DOG.name="mini";
GLOBAL.A.DOG.move=function(){
}
GLOBAL.A.str=a;
GLOBAL.A.str1=a1;
})();

依次類似,無論多人的直接團隊開發,還是個人的間接團隊合作,都需要良好的可維護性。

1、添加必要的代碼注釋

2、讓JS不產生沖突,需避免全局變量的泛濫,合理使用命名空間
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉水县| 承德市| 三河市| 观塘区| 林口县| 普洱| 太保市| 历史| 乌兰察布市| 济源市| 黔西| 商丘市| 苏尼特右旗| 徐水县| 文水县| 如皋市| 河池市| 杭州市| 平远县| 鸡泽县| 永顺县| 柞水县| 乐业县| 霍山县| 砚山县| 云阳县| 南漳县| 德阳市| 宽甸| 南安市| 商水县| 富顺县| 逊克县| 宁河县| 苏尼特右旗| 桂阳县| 鄂温| 昌江| 沿河| 交城县| 喀喇沁旗|