当前位置: 首页 > 编程笔记 >

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

高恺
2023-03-14
本文向大家介绍关于JavaScript命名空间的一些心得,包括了关于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 = {};
}

 类似资料:
  • 本文向大家介绍js关于命名空间的函数实例,包括了js关于命名空间的函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js关于命名空间的函数。分享给大家供大家参考。具体如下: 希望本文所述对大家的javascript程序设计有所帮助。

  • 我一直试图找到一种方法来定义一个命名空间中的服务,该服务链接到另一个命名空间中运行的Pod。我知道在中运行的Pod中的容器可以访问中定义的,方法是在集群DNS中将其引用为,但我不希望容器中的代码需要知道的位置。也就是说,我希望代码只查找,然后能够访问它。 Kubernetes文档表明这是可能的。它指出,定义不使用选择器的服务的原因之一是,您希望将服务指向另一个命名空间或另一个集群上的服务。 这告诉

  • 本文向大家介绍javascript模拟命名空间,包括了javascript模拟命名空间的使用技巧和注意事项,需要的朋友参考一下 在 C++ 和 C# 中,命名空间用于尽可能地减少名称冲突。例如,在 .NET Framework 中,命名空间有助于将 Microsoft.Build.Task.Message 类与 System.Messaging.Message 区分开来。JavaScript 没有

  • 以上描述的作为基于装饰器的活动处理函数的替代,属于命名空间的活动处理函数可以被创造成一个类的方法。Flask_socketio.Namespace提供了一个基于类的方法来创造命名空间。 from flask_socketio import Namespace, emit class MyCustomNamespace(Namespace): def on_conect(): pas

  • 为什么using指令在包含在匿名命名空间中时表现得好像出现在全局范围?

  • 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。 这篇文章描述了如何在TypeScript里使用命名空间(之前叫做“内部模块”)来组织你的代码