源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

关于JavaScript命名空间的一些心得

  • 时间:2021-09-30 05:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:关于JavaScript命名空间的一些心得
最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来 相信大家都知道,window是顶级的,这里就不写window了,先忽略 [b]1:关于顶级 [/b]
[u]复制代码[/u] 代码如下:
var ns = ns || {};
可以看到,其实就是如果发现没有这个对象,就自动创建new Object();如果有,就直接使用这个对象,这样就不会覆盖。 [b]2: 第二级[/b],当然也可以在顶级的ns下创建第二级,即
[u]复制代码[/u] 代码如下:
ns.ModuleClass = {};
可以看到,在ns下创建了一个类,当然也可以继续创建类里的方法,即是这种:
[u]复制代码[/u] 代码如下:
ns.ModuleClass.method1= function() {////};
[b]3:多级[/b]应该怎么做呢,比如这种com.qw.view,我想把他设成一个命名空间,这就要对每一个点分隔的名称进行分别设置命名空间,分别设成对象 我们看一个例子,把他设置在window下:
[u]复制代码[/u] 代码如下:
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; }
可以看到确实是我上面说的思路,用了一个遍历,把分隔的全部设成对象,这样每个分隔的都可以单独用。 [b]4:列一下常用的[/b],简单快捷的设置命名空间的小技巧吧
[u]复制代码[/u] 代码如下:
if (!window.ns) {   window.ns = {}; } var ns; if(typeof ns == "undefined"){   ns = {}; } if(typeof ns.ClassName == "undefined"){   ns.ClassName = {}; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部