在量比较大或者多人编写的情况下,命名冲突就很有可能发生,同一个页面引用了两个命名相同功能不同的文件,调用的时候就会出问题。因此使用JS命名空间很重要。

1.采用字面量方法创建命名空间:

var a={

login:function(){……}

}

var b={

login:function(){……}

}//可以在a\b空间里面的login里面加入所需要的属性和方法。

2.

var com;

if(!com) com={};//第一级域名

com.ModuleClass={};//第二级域名

com.ModuleClass.函数名1=function(){函数体;}

com.ModuleClass.函数名2=function(){函数体;}

3.使用动态方法创建(有两种方法,1.window对象实现 2.eval实现)

//window实现

var namaSpace=nameSpace||{};

(function(){

var global=window;

nameSpace.ns=function(nsStr){

var parts=nsStr.split('.');

root=global;

i;

for(i=0,max=parts.length;i<max;i++){

if(typeof root[parts[i]]==="undefined"){

root[parts[i]]={};

}

root=root[parts[i]];

}

return root;

};

})();

使用命名空间:

nameSpace.ns("BP.login");

BP.login={

min_height=660;

min_width=1024;

isIE:false;

init:function(){

this.isIE=$.browser.msie;

this.regEvent();

this.initPage();

BP.page.i18nInit();

}

}

使用其中的函数:

<html>

<head>

<mata name="others" content="login_page">

<script>

$(document).ready(function(){

BP.login.init();

});

</sctipt>

</head>

<body>

</body>

</html>

// eval实现

a.命名空间注册工具类

var Namespace=new Object();

Namespacr.register=function(path){

var arr=path.split('.');

var ns="";

for(var i=0;i<arr.length;i++){

if(i>0)  ns+=".";

ns+=arr[i];

eval("if(typeof("+ns+")=='undefined')"+ns+"=new Object();");

}

}

b.注册命名空间com.boohee.ui

Namespace.register('com.boohee.ui')

c.使用命名空间

com.boohee.ui.TreeGrid=function(){

this.sayHello=function(name){

alert("hello"+name);

}

}

var t=new com.boohee.ui.TreeGrid();

t.sayHello('uid');

最新文章

  1. Reveal - UI 分析工具
  2. docker-registry 搭建私有仓库服务器
  3. 关于MySQL中的left join、on、where的一点深入
  4. HTML5 文件操作API
  5. 九度OJ 1013 开门人和关门人
  6. ABAP 7.52 中的Open SQL新特性
  7. 【Unity Shaders】Reflecting Your World —— Unity3D中的遮罩反射(Masking Reflections)
  8. Hi3516A开发--接触(转)
  9. spring注解工具类AnnotatedElementUtils和AnnotationUtils
  10. jquery的自定义事件通过on绑定trigger触发
  11. nodejs实现新闻爬虫
  12. js便签笔记(7)——style、currentStyle、getComputedStyle区别介绍【转载】
  13. 使用userAgent判断使用的是什么浏览器
  14. 通过用户名、密码提交的方式搭建私有git服务端
  15. iphone设置fiddler代理测试
  16. Python学习札记(三十) 面向对象编程 Object Oriented Program 1
  17. code3286 火柴排队
  18. 《DSP using MATLAB》示例Example7.11
  19. HDU 2571 命运 (简单DP)
  20. Spring Boot 整合 Hibernate5

热门文章

  1. category分类
  2. APN 推送
  3. Oracle Flashback Technologies - 闪回被drop的表
  4. 五种I/O 模式,select、epoll方法的理解,BIO、NIO、AIO理解 相关文章
  5. Java数组(初学者必看)
  6. node.js学习(1)
  7. ssh两台机器建立信任关系无密码登陆
  8. SQL top查询
  9. BZOJ K大数查询(分治)(Zjoi2013)
  10. 13---Net基础加强