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命令 四.构造函 ...
随机推荐
- CNContact对通讯录的基本使用(增删改查)
/** * 注意:iOS9才有能使用 * 首先在工程里导入ContactsUI.framework和Contacts.framework两个框架 * * * 源代码的链接地址 * 链接: http:/ ...
- set ver on/off
set verify(或ver) on/off可以设置是否显示替代变量被替代前后的语句 SQL> set verify on SQL> select &num from d ...
- vmware lan map
1,nat: virtrual machine---vmnet8---PC---internet 2,host-only virtual machine(0,1,2...)---vmnet1 3,br ...
- Vue.js实例练习
最近学习Vue.js感觉跟不上节奏了,Vue.js用起来很方便. 主要实现功能,能添加书的内容和删除.(用的Bootstrap的样式)demo链接 标题用了自定义组件,代码如下: components ...
- pg_rewind 介绍
pg_rewind—使一个PostgreSQL数据目录与另一个数据目录(该目录从第一个PostgreSQL数据目录创建而来)一致. 描述 pg_rewind是一个在集群的时间线参数偏离之后,用于使一个 ...
- PostgreSQL应用相关问题解决
PostgreSQL中是否区分聚簇索引与非聚簇索引的问题? 答:PostgreSQL中区分聚簇索引与非聚簇索引. 示例如下: 创建聚族索引: CREATE INDEX test_ind ON yy ( ...
- CSS3 auto revolution practitioner!
1.html <!DOCTYPE html> <html> <head> <title></title> <meta charset= ...
- JavaOOP QuickHit项目分析
项目需求:游戏等级6级,随机字符串每级长度不同.每升一级减少比较次数,但是字符串长度相应增加!每级总分数不同,如果游戏中途输入错误则游戏退出!玩家每次在规定时间内输入字符串的同时,打印出游戏难度等级. ...
- -05 08:57 ARCGIS地统计学计算文件后缀名为.shp文件制作
2011-07-05 08:57 ARCGIS地统计学计算文件后缀名为.shp文件制作 ARCAMP软件要进行地统计计算的文件后格式后缀名必须为.shp的文件,网上介绍的方法复杂难懂,那么制作.shp ...
- 取客户的银行帐号SQL
SELECT ibybanks.bank_name, --银行 ibybanks.bank_branch_name, --分行 ibybanks.bank_account_num_electronic ...