首页 > Web开发 > 详细

今天和组内一起写代码时碰到了一个关于命名冲突的问题,最后用js命名空间的方法解决的。

时间:2014-06-26 13:08:05      阅读:367      评论:0      收藏:0      [点我收藏+]

 

//第一步,首先创建一个全局变量,可以放在自己的js方法库中方便以后用,这个就是用来注册命名空间的方法。

ns = function(namespace)
{
var arr = namespace.split(‘.‘);  //将传入的字符串如"com.test.lzn"以‘.‘隔开做成一个数组
var strNamespace = "";  //这个是为了保存每一步循环进去的包名
for(var i=0;i<arr.length;i++)
{
if(i!=0) strNamespace+=‘.‘;  //第一层如com是不需要加点的,但是后面的包名拼接需要加上字符‘.‘
strNamespace+=arr[i];

//console.log("if (typeof("+strNamespace+")==‘undefined‘) "+strNamespace+"=new Object()");  这句话是最重要的一句,去拼接一个js字符串,判断当前包名是否已经被用,如果没有,就创建一个新的对象。

eval("if (typeof("+strNamespace+")==‘undefined‘) "+strNamespace+"=new Object()");
}
}

 

//第二步,注册命名空间,告诉内存我要将这个字符串如"com.test.lzn"作为命名空间以方便以后使用

ns(‘com.test.lzn‘);

 

//第三步,正式测试使用

com.test.lzn.fn1 = function()
{
alert(‘a‘);
}
com.test.lzn.fn1();

 

已成功,哈哈~~~

今天和组内一起写代码时碰到了一个关于命名冲突的问题,最后用js命名空间的方法解决的。,布布扣,bubuko.com

今天和组内一起写代码时碰到了一个关于命名冲突的问题,最后用js命名空间的方法解决的。

原文:http://www.cnblogs.com/liuzhaoning/p/3809249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!