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

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

理運(yùn)用命名空間讓js不產(chǎn)生沖突避免全局變量的泛濫

2024-05-06 16:07:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
為了避免變量之間的覆蓋與沖突,可以生成命名空間,命名空間是一種特殊的前綴,在不同的匿名函數(shù)中,根據(jù)功能聲明一個(gè)不同的命名空間

為了避免變量之間的覆蓋與沖突,可以生成命名空間,命名空間是一種特殊的前綴,在js中,通過(guò){ }對(duì)象實(shí)現(xiàn)。

在不同的匿名函數(shù)中,根據(jù)功能聲明一個(gè)不同的命名空間,每個(gè)匿名函數(shù)中GLOBAL對(duì)象的屬性都不直接掛在GLOBAL上,而是掛在次匿名函數(shù)的命名空間下,如:

復(fù)制代碼 代碼如下:


<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>


如果同一個(gè)匿名函數(shù)中的程序非常復(fù)雜,變量名很多,命名空間可以進(jìn)一步擴(kuò)展,生成二級(jí)命名空間:

復(fù)制代碼 代碼如下:


<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>


因生成命名空間是非常常用的功能,可以進(jìn)一步將生成命名空間的功能定義成一個(gè)函數(shù),方便調(diào)用,如下:

復(fù)制代碼 代碼如下:


<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>


調(diào)用命名空間具體操作:

復(fù)制代碼 代碼如下:


<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;
})();


依次類似,無(wú)論多人的直接團(tuán)隊(duì)開發(fā),還是個(gè)人的間接團(tuán)隊(duì)合作,都需要良好的可維護(hù)性。

1、添加必要的代碼注釋

2、讓JS不產(chǎn)生沖突,需避免全局變量的泛濫,合理使用命名空間
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 云阳县| 三河市| 监利县| 梁河县| 抚远县| 襄垣县| 溧阳市| 钦州市| 治县。| 永城市| 商水县| 天镇县| 宣化县| 玉龙| 凤冈县| 湘潭县| 黑河市| 泾阳县| 唐河县| 于田县| 江陵县| 施秉县| 东丰县| 兴宁市| 葵青区| 东平县| 靖边县| 富锦市| 密云县| 新巴尔虎左旗| 慈溪市| 苏尼特右旗| 龙口市| 治县。| 金溪县| 青阳县| 应用必备| 岑巩县| 乌兰浩特市| 曲靖市| 成安县|