转至 http://itindex.net/detail/50000-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>
因生成命名空间是非常常用的功能,可以进一步将生成命名空间的功能定义成一个函数,方便调用,如下:
<pre class="html" name="code"><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不产生冲突,需避免全局变量的泛滥,合理使用命名空间
好开会好看
相关推荐
JavaScript中的命名空间是一种组织代码的方式,它可以帮助我们避免全局变量的冲突,提高代码的可维护性和模块化。在JavaScript中,由于其动态类型和函数作用域的特性,全局变量的滥用很容易导致变量间的覆盖和冲突,...
电磁场与电磁波28
在使用 R 语言进行科研绘图时,颜色的选择是一件让人特别纠结的事情。本系列文章介绍了 R 语言科研绘图时常用的一些配色。本资源给大家提供了文章对应的 PPT。
Modbus TCP/IP:基于以太网和TCP/IP协议栈,将Modbus协议封装在TCP/IP协议中,适用于通过网络进行远程通信的场合,是目前工业以太网中常用的通信协议之一。 本资源简单实现了如何在在C#的Winform应用程序中使用NModbus库实现Modbus通讯,包括读取保持寄存器、以及相应的UI界面设计和事件处理。 在Modbus网络中,有一个主设备(通常是控制器或上位机)和多个从设备(如传感器、执行器等)。主设备发起通信请求,从设备根据请求进行响应,从设备不能主动向主设备发送数据。 Modbus 从站(Slave)是 Modbus 通信协议中的响应设备,负责接收并执行来自主站(Master)的请求。 Modbus 从站是被动设备,它不能主动发起通信,只能响应主站的请求。从站的主要功能包括: 1、接收主站的指令(如读取数据或执行操作)。 2、执行相应的操作(如读取寄存器值或设置参数)。 3、返回响应数据或错误码给主站。
Java项目springboot基于springboot的课程设计,包含源码+数据库+毕业论文
电磁场与电磁波13