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

 更新时间:2014年06月07日 10:51:09   作者:  
这篇文章主要介绍了关于JavaScript命名空间的一些心得,分别给出了顶级、多级命名空间的例子,需要的朋友可以参考下

最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来
相信大家都知道,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包装对象使用详解

    javascript代码运行的过程中基本类型会找到对应的包装对象,然后包装对象把所有的属性和方法给了基本类型,然后包装对象被系统进行销毁,所以理解了包装对象可以很好的理解之前写的代码为什么可以这样做了。
    2015-07-07
  • electron 无边框窗口拖拽移动问题及解决办法

    electron 无边框窗口拖拽移动问题及解决办法

    在做一款uTools的插件,悬浮文本,窗口是没有标题栏的,所以需要找一个地方可以拖动移动位置,本文给大家介绍electron 无边框窗口拖拽移动问题及解决办法,感兴趣的朋友一起看看吧
    2023-12-12
  • 浅谈JS和Nodejs中的事件驱动

    浅谈JS和Nodejs中的事件驱动

    这篇文章主要介绍了JS和Nodejs中的事件驱动,对事件驱动感兴趣的同学,可以参考下
    2021-05-05
  • JavaScript利用正则表达式来禁止键盘输入数字

    JavaScript利用正则表达式来禁止键盘输入数字

    本文主要介绍了JavaScript利用正则表达式来禁止键盘输入数字,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • JS 按钮点击触发(兼容IE、火狐)

    JS 按钮点击触发(兼容IE、火狐)

    这篇文章介绍了JS 按钮点击触发,有需要的朋友可以参考一下
    2013-08-08
  • Js之如何移除Array/数组中指定元素

    Js之如何移除Array/数组中指定元素

    这篇文章主要介绍了Js之如何移除Array/数组中指定元素问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • layui使用form表单实现post请求页面跳转的方法

    layui使用form表单实现post请求页面跳转的方法

    今天小编就为大家分享一篇layui使用form表单实现post请求页面跳转的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JavaScript对象合并实现步骤介绍

    JavaScript对象合并实现步骤介绍

    这篇文章主要介绍了JavaScript对象合并实现步骤,为什么要合并?这是我在重构代码的时候的一个需求。简单来说,我会有若干个对象需要合并为一个对象。而这些对象为两层,如果直接展开或者赋值会涉及到深拷贝
    2023-01-01
  • javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现

    javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现

    首先来说,我对游戏开发可以算是不怎么深入,因为现在的程序员爱用canvas,我却就只会拿几个div凑和。不过没关系,因为做出来的同样是游戏。哈!废话最近有点多,感兴趣的朋友可以了解下
    2013-01-01
  • js设置鼠标悬停改变背景色实现详解

    js设置鼠标悬停改变背景色实现详解

    这篇文章主要介绍了js设置鼠标悬停改变背景色实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06

最新评论