js命名空间笔记
在量比较大或者多人编写的情况下,命名冲突就很有可能发生,同一个页面引用了两个命名相同功能不同的文件,调用的时候就会出问题。因此使用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');
最新文章
- Reveal - UI 分析工具
- docker-registry 搭建私有仓库服务器
- 关于MySQL中的left join、on、where的一点深入
- HTML5 文件操作API
- 九度OJ 1013 开门人和关门人
- ABAP 7.52 中的Open SQL新特性
- 【Unity Shaders】Reflecting Your World —— Unity3D中的遮罩反射(Masking Reflections)
- Hi3516A开发--接触(转)
- spring注解工具类AnnotatedElementUtils和AnnotationUtils
- jquery的自定义事件通过on绑定trigger触发
- nodejs实现新闻爬虫
- js便签笔记(7)——style、currentStyle、getComputedStyle区别介绍【转载】
- 使用userAgent判断使用的是什么浏览器
- 通过用户名、密码提交的方式搭建私有git服务端
- iphone设置fiddler代理测试
- Python学习札记(三十) 面向对象编程 Object Oriented Program 1
- code3286 火柴排队
- 《DSP using MATLAB》示例Example7.11
- HDU 2571 命运 (简单DP)
- Spring Boot 整合 Hibernate5