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');
js命名空间笔记的更多相关文章
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- js读书笔记
js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 "&q ...
- React.js入门笔记
# React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- js命名空间的使用
js命名空间的使用: test.html 代码如下: <!DOCTYPE HTML><html lang="en-US"><head> & ...
- node.js系列笔记之node.js初识《一》
node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...
- JS面向对象笔记二
菜单导航,<JS面向对象笔记一>, 参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...
随机推荐
- ECharts 在同一个页面添加多个图表 并 给图表绑定事件
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts< ...
- openvpn构建
openvpn构建1. 检测是否支持tun/tap cat /dev/net/tun cat: /dev/net/tun: File descriptor in bad state ##这代表支持 2 ...
- 利用DescriptionAttribute实现枚举字符串
我们知道定义枚举时是不允许带空格等符号的,这样就不利于进行字符串对比.当然可以通过给枚举添加DescriptionAttribute,然后通过fieldinfo读取DescriptionAttribu ...
- Java的数据转换
Java的数据类型分为三大类,即布尔型.字符型和数值型,其中数值型又分为整型和浮点型.相对于数据类型,Java的变量类型为布尔型boolean;字符型char:整型byte.short.int.lon ...
- JavaScript内的类型转换
JavaScript内的类型转换 1.分为自动转换和强制转换,我们一般用强制转换.其他类型转换为整数是parseInt();其他类型转化为小数parseFloat(); 2.判断是不是一个合法数字 ...
- 转:Java的各种类型转换汇总
java类型转换 Integer String Long Float Double Date 1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Intege ...
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- redis连接数问题
redis连接数查看 info client redis连接数满了,不会继续建立连接. 造成redis连接数满了原因有很多. 1.建立新连接不close()的话redis连接不会回归连接池. 显示所有 ...
- zw版【转发·台湾nvp系列例程】HALCON EquHistoImage(Delphi)
zw版[转发·台湾nvp系列例程]HALCON EquHistoImage(Delphi) zw版[转发·台湾nvp系列例程]HALCON EquHistoImage(Delphi) (Delphi ...
- 典型的检查对float精度理解的代码
-rand()%); vy = ); vz = ); pList_particle[i].m_velocity = Vector3(vx,vy,vz); ... 1,3行代码的vx和vz的值域可以通过 ...