关于JavaScript命名空间的一些心得
2014-06-07 00:00
549 查看
最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来
相信大家都知道,window是顶级的,这里就不写window了,先忽略
1:关于顶级
可以看到,其实就是如果发现没有这个对象,就自动创建new Object();如果有,就直接使用这个对象,这样就不会覆盖。
2: 第二级,当然也可以在顶级的ns下创建第二级,即
可以看到,在ns下创建了一个类,当然也可以继续创建类里的方法,即是这种:
3:多级应该怎么做呢,比如这种com.qw.view,我想把他设成一个命名空间,这就要对每一个点分隔的名称进行分别设置命名空间,分别设成对象
我们看一个例子,把他设置在window下:
可以看到确实是我上面说的思路,用了一个遍历,把分隔的全部设成对象,这样每个分隔的都可以单独用。
4:列一下常用的,简单快捷的设置命名空间的小技巧吧
相信大家都知道,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 = {}; }
相关文章推荐
- 关于JavaScript命名空间的一些心得
- 关于JavaScript命名空间的一些心得
- 关于JS的顶级,多级命名空间的一些心得
- 关于Javascript模块化和命名空间管理
- 关于javascript的命名空间[转]
- 关于Javascript模块化和命名空间管理
- 关于学习JavaScript 的 高三编程 一些心得(三)
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理javascript
- 关于Javascript模块化和命名空间管理
- 关于Javascript的一些心得与记忆
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理
- 关于Javascript模块化和命名空间管理的问题说明
- 关于javascript模块和命名空间(Module and namespace)
- 关于学习JavaScript 的 高三编程 一些心得(二)
- 关于Javascript模块化和命名空间管理