源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

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

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2014-6-7 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 = {};
}

回复

使用道具 举报

11

主题

2万

回帖

300

积分

中级会员

Rank: 3Rank: 3

积分
300
发表于 2022-11-10 00:49:26 | 显示全部楼层
哦哦哦哦哦哦哦哦哦
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2022-11-12 20:51:41 | 显示全部楼层
快更新啊,我擦
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

66

积分

注册会员

Rank: 2

积分
66
发表于 2023-1-20 04:01:43 | 显示全部楼层
数据库了多久撒快乐的健身卡啦
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-9-3 00:44:19 | 显示全部楼层
很不错的样子
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2023-9-8 23:53:23 | 显示全部楼层
来看看怎么样
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2023-9-13 02:11:18 | 显示全部楼层
来看看!!!
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

288

积分

中级会员

Rank: 3Rank: 3

积分
288
发表于 2023-9-17 14:28:40 | 显示全部楼层
了乐趣了去了去了去了去了
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2023-11-3 03:49:12 | 显示全部楼层
终于找到了,我擦
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-4-11 12:01:46 | 显示全部楼层
哈哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-30 18:52 , Processed in 0.072577 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表