最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来
相信大家都知道,window是顶级的,这里就不写window了,先忽略
1:关于顶级
复制代码 代码如下:var ns = ns || {};
可以看到,其实就是如果发现没有这个对象,就自动创建new Object();如果有,就直接使用这个对象,这样就不会覆盖。
2: 第二级,当然也可以在顶级的ns下创建第二级,即
复制代码 代码如下:ns.ModuleClass = {};
可以看到,在ns下创建了一个类,当然也可以继续创建类里的方法,即是这种:
复制代码 代码如下:ns.ModuleClass.method1= function() {////};
3:多级应该怎么做呢,比如这种com.qw.view,我想把他设成一个命名空间,这就要对每一个点分隔的名称进行分别设置命名空间,分别设成对象
我们看一个例子,把他设置在window下:
复制代码 代码如下:
function namespace(sSpace) {
var arr = sSpace.split('.'),i = 0,nameI;
var root = window;
for (; nameI = arr[i++];) {
if (!root[nameI]) {
root[nameI] = {};
}
root = root[nameI];
}
return root;
}
可以看到确实是我上面说的思路,用了一个遍历,把分隔的全部设成对象,这样每个分隔的都可以单独用。
4:列一下常用的,简单快捷的设置命名空间的小技巧吧
复制代码 代码如下:
if (!window.ns) {
window.ns = {};
}
var ns;
if(typeof ns == "undefined"){
ns = {};
}
if(typeof ns.ClassName == "undefined"){
ns.ClassName = {};
}
相关推荐:
AJAX 客户端响应速度提高分析
js apply/call/caller/callee/bind使用方法与区别分析
javascript 添加和移除函数的通用方法
fileupload控件 文件类型客户端验证实现代码
FCK 编辑器焦点问题
sql 语句中的 NULL值
php self,$this,const,static,->的使用
jquery (show,fadeOut,Animate)简单效果
PHP 配置open_basedir 让各虚拟站点独立运行
伪静态技术介绍与优缺点分析(较完整篇)
JavaScript window.setTimeout() 的详细用法
css 有弹动效果的网页导航
PHP 程序员应该使用的10个组件
extjs 学习笔记 四 带分页的grid
jQuery get和post 方法传值注意事项
百度留言本js 大家可以参考下
jQuery animate效果演示
jquery select选中的一个小问题
页面版文本框智能提示JS代码
xhEditor的异步载入实现代码
CSS Filter背景透明提示
用按钮触发Javascript动态生成一个表格的代码
Javascript 模式实例 观察者模式
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
颈椎残废记 站长兄弟请注意保护好自己的身体
Python 文件操作实现代码
不安全的常用的js写法
JavaScript 变量命名规则
面向对象的javascript(笔记)
JQuery与Ajax常用代码实现对比
vbs 函数 获取数组字符串的最后一个LastOne 挺方便的
数据库中union 与union all 的区别
开发人员一定要加入收藏夹的网站 推荐
js 覆盖和重载 函数
在ACCESS和SQL Server下Like 日期类型查询区别
JavaScript 定义function的三种方式小结
关于页面优化和伪静态
Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法
Mootools 1.2教程 滑动效果(Slide)
一个js写的日历(代码部分网摘)
AJAX自学练习 无刷新从数据库后台取数据显示
IIS 配置过程及解决方案 学习小结
JS 操作日期 顺便实现 上一周 和 下一周 功能
JavaScript Array扩展实现代码
PHP教程 变量定义
CSS 美化表格边框为凹陷立体效果的实现方法
理解JavaScript变量作用域更轻松
Js 打字效果 逐一出现的文字
javascript 指定区域内图片等比例缩放实现代码 脚本之家整合版 <font color=red>原创</font>
php 远程包含文件漏洞分析第1/6页