手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >理运用命名空间让js不产生冲突避免全局变量的泛滥
理运用命名空间让js不产生冲突避免全局变量的泛滥
摘要:为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在js中,通过{}对象实现。在不同的匿名函数中,根据功能声明一个不...

为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在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不产生冲突,需避免全局变量的泛滥,合理使用命名空间

【理运用命名空间让js不产生冲突避免全局变量的泛滥】相关文章:

简介JavaScript中的getUTCFullYear()方法的使用

JavaScript中的replace()方法使用详解

超级强大的表单验证

JavaScript中的Math.LN2属性用法详解

jQuery Timelinr实现垂直水平时间轴插件(附源码下载)

浅谈javascript中for in 和 for each in的区别

JavaScript中isPrototypeOf函数作用和使用实例

实用javaScript技术-屏蔽类

JS实现屏蔽shift,Ctrl,alt等功能键的方法

javascript中this的四种用法

精品推荐
分类导航