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命令 四.构造函 ...
随机推荐
- django 一些库
https://django-adminactions.readthedocs.io/en/latest/actions.html http://www.ziqiangxuetang.com/djan ...
- jQuery中append()与appendto()用法分析
本文实例分析了jquery中append()与appendto()的用法.分享给大家供大家参考.具体分析如下: 在jQuery的文档操作方法中,append()和appentto()方法执行的任务相同 ...
- MAXFLOAT
CGSizeMake(300, MAXFLOAT),是计算宽和高的,里面的MAXFLOAT通俗点说就是最大的数值,代表你的label的宽和高是随着你label内容而变化,不用担心因为label内容过长 ...
- 判断UpLoader是否安装了Flash
var flashVersion = (function() { var version; try { version ...
- Python学习总结17:exec和eval执行求值字符串
有些时候可能会需要动态地创造Python代码,然后将其作为语句执行或作为表达式计算. 1. exec >>>exec "print 'Hello, world!'" ...
- 数据库SQL 查询
查询 1.简单查询 select * from info(表名) --查所有数据 select code(列名),name(列名) from 表名 --查指定列的数据 selec ...
- list和map的区别
list和map的区别 list-->list是对象集合,允许对象重复 map-->map是键值对的集合,不允许key重复
- linux第5天 socket api
IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件<netinet/in.h>中 通用地址结构用来指定与套接字关联的地址.以socka ...
- 配置文件App.config的使用以及Readonly与Const的对比
以前我们学习的时候都把连接数据库的连接字符串写在一个类中,因为我们的数据库都在自己电脑上.如果更换数据库地址,需要更改这个类,然后重新编译才可以连接到数据库.现在我们需要将连接字符串当道一个文件中,然 ...
- Linux 远程和本地的一些解决方案
有的小伙伴想Linux 远程登录 两台机器同时root登录,其实可以同时多个用户的. Linux是多用户的多任务系统,可以同时多个用户登录到系统,也可以一个用户通过不同终端登录到一个系统执行不同的操 ...