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


Posted in Javascript onJune 07, 2014

最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来
相信大家都知道,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 相关文章推荐
表单填写时用回车代替TAB的实现方法
Oct 09 Javascript
IE6不能修改NAME问题的解决方法
Sep 03 Javascript
JS 控件事件小结
Oct 31 Javascript
JavaScript实现的图像模糊算法代码分享
Apr 22 Javascript
js实现上传图片预览的方法
Feb 09 Javascript
JS实现让网页背景图片斜向移动的方法
Feb 25 Javascript
jQuery实现表单步骤流程导航代码分享
Aug 28 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
Jun 26 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
vue通过watch对input做字数限定的方法
Jul 13 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
Sep 13 Javascript
Antd中单个DatePicker限定时间输入范围操作
Oct 29 Javascript
javascript随机之洗牌算法深入分析
Jun 07 #Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
Jun 07 #Javascript
js中的caller和callee属性介绍和例子
Jun 07 #Javascript
javascript中拼接HTML字符串的最快、最好的方法
Jun 07 #Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
Jun 07 #Javascript
JavaScript异步回调的Promise模式封装实例
Jun 07 #Javascript
jQuery的缓存机制浅析
Jun 07 #Javascript
You might like
收音机的保养
2021/03/01 无线电
VOLVO车载收音机
2021/03/02 无线电
php中批量替换文件名的实现代码
2011/07/20 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
js禁止表单重复提交
2017/08/29 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
react native 获取地理位置的方法示例
2018/08/28 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
python DataFrame 取差集实例
2019/01/30 Python
音乐表演专业毕业生求职信
2013/10/14 职场文书
团日活动总结
2014/04/28 职场文书
工业设计专业自荐书
2014/06/05 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
试用期辞职信范文
2015/03/02 职场文书
安全生产奖惩制度
2015/08/06 职场文书
高中信息技术教学反思
2016/02/16 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python