您的位置:首页 > 编程语言

利用命名空间来防止变量名冲突――读《编写高质量代码》总结

2011-11-17 00:43 435 查看
多人一起开发js文件时,由于所起的变量名都是window的属性(即全局变量),容易重名冲突,解决办法是每个程序员所写的代码都放在匿名函数中,形式为(function(){})();这样包在匿名函数中的变量为局部变量,不会与其他程序员的变量相冲突。
如果程序员A要引用程序员B写的某个变量,如何解决呢?
解决的办法是设计一个全局变量,利用全局变量的桥梁作用,使得不同程序段可以通信。如何设计全局变量呢,可以采用命名空间的方式:
<script>
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>

使用方法:当程序员A写的程序:
<script>
(function(){
var a = "abc",b="123";
GLOBAL.namespace("A.CAT");

GLOBAL.A.str2 = a;
GLOBAL.A.str = b;
})();
</script>
程序员B就可以引用GLOBAL.A.str2和GLOBAL.A.str了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐