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

2019-12-21,,,

最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来
相信大家都知道,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创建命名空间的5种写法
  • javascript简单实现命名空间效果
  • Javascript 命名空间模式
  • JavaScript 命名空间 使用介绍
  • JS模块与命名空间的介绍
  • namespace.js Javascript的命名空间库
  • js命名空间写法示例

《关于JavaScript命名空间的一些心得.doc》

下载本文的Word格式文档,以方便收藏与打印。