第一种:
// 声明一个全局对象Namespace,用来注册命名空间
Namespace = new Object();

// 全局对象仅仅存在register函数,参数为名称空间全路径,如"Grandsoft.GEA"
Namespace.register = function(fullNS)
{
  // 将命名空间切成N部分, 比如Grandsoft、GEA等
   var nsArray = fullNS.split('.');
var sEval = "";
 var sNS = "";
 for (var i = 0; i < nsArray.length; i++)
{
if (i != 0) sNS += ".";
sNS += nsArray[i];
// 依次创建构造命名空间对象(假如不存在的话)的语句
 // 比如先创建Grandsoft,然后创建Grandsoft.GEA,依次下去
 sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"
}
if (sEval != "") eval(sEval);
}
// 注册命名空间Grandsoft.GEA, Grandsoft.GCM
Namespace.register("Grandsoft.GEA");
Namespace.register("Grandsoft.GCM");

// 在Grandsoft.GEA命名空间里面声明类Person
Grandsoft.GEA.Person = function(name, age)
{
  this.name = name;
   this.age = age;
}

// 给类Person添加一个公共方法show()
Grandsoft.GEA.Person.prototype.show = function()
{
   alert(this.name + " is " + this.age + " years old!");
}

// 演示如何使用类Person
var p = new Grandsoft.GEA.Person("yanglf", 25);
p.show();
第二种:
eye = {
    namespace: function() {
        var a = arguments, o = null, i, j, d, rt;
        for (i = 0; i < a.length; ++i) {
            d = a[i].split(".");
            rt = d[0];
            eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
            for (j = 1; j < d.length; ++j) {
                o[d[j]] = o[d[j]] || {};
                o = o[d[j]];
            }
        }
    }
};

eye.namespace("eye", "eye.common", "eye.datePicker", "eye.selectCity", "eye.tab","eye.test");
eye.test={//测试命名空间
    show: function() {
        return "aaa";
    }
}
alert(eye.test.show());//命名空间

转载于:https://www.cnblogs.com/marsleoguo/p/3449740.html

js高级编程中命名空间的两种用法相关推荐

  1. jsp中include 的两种用法

    1.两种用法 静态include: <%@ inlcude file ="header.jsp" %> 此时引入的是静态的jsp文件,它将引入的jsp中的源代码原封不动 ...

  2. vue3.0中setup使用(两种用法)

    这篇文章主要介绍了vue3.0中setup使用,本文通过两种用法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 一.setup函数的特性以及作用 可以确定的是 V ...

  3. 请问unix高级编程中的open包含哪些用法

    "open" 在 Unix 高级编程中是指一个用于打开文件.设备和网络连接的系统调用.它的用法包括: 打开一个文件:通过 open 函数可以打开一个文件,并获取一个文件描述符. 设 ...

  4. jsp中include的两种用法

    1.两种用法 第一种:include指令:通过file属性来指定被包含的页面,当JSP转换成Servlet时引入指定文件,一般不需要写头 <%@ pagecontentType="te ...

  5. html获取url参数值,js获取url中参数值的两种方法

    本节主要内容: js获取url中参数值. 方法1:正则分析法 复制代码 代码示例: function getQueryString(name) { var reg = new RegExp(" ...

  6. java中super_java中super的两种用法

    转自:http://blog.csdn.net/yihuei123/archive/2007/06/04/1637893.aspx 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种 ...

  7. (转载)java中super的两种用法

    (转载)http://www.cnblogs.com/rollenholt/articles/2033989.html 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说 ...

  8. C++中operator的两种用法

    首先声明,转载自:http://blog.csdn.net/skdkjzz/article/details/45872801 转换函数的名称是类型转换的目标类型,因此,不必再为它指定返回值类型:转换函 ...

  9. Java中return的两种用法

    一.return语句总是用在方法中,有两个作用. 一个是返回方法指定类型的值(这个值总是确定的). 一个是结束方法的执行(仅仅一个return语句). 一般的就百是用在有反回值的方法中,用来返回方度法 ...

最新文章

  1. 图片加到json中,提交到服务器端处理异常问题。
  2. JAVA的方法的定义和调用
  3. macosx下apache的默认用户为daemon
  4. springmvc细节篇
  5. unity 导入gltf_基于gltf的GPU蒙皮动画(一)
  6. RGB与YUV的转换
  7. php 并发出站,PHP控制站点并发
  8. 【基础】网络常见的9大命令,非常实用!
  9. 深入理解Oracle Exadata
  10. wpe修改充值_WPE修改基础第四课:封包分析教程
  11. windows 10 英文版显示中文乱码
  12. 命令行工具解析Crash文件,dSYM文件进行符号化
  13. windows 系统清理工具
  14. 京东面试详解(渣渣吐血整理版)
  15. SpringBoot---Eureka
  16. border-image-slice
  17. Qt geometry
  18. Windows DPC详解
  19. 国内市场占有率第一,份额上涨至46.4%,阿里云还在涨!
  20. 计算机网络原理中子网掩码,自考 计算机网络原理 考点之IP地址与子网掩码的计算与划分...

热门文章

  1. sql复杂查询语句总结
  2. muduo之CountDownLatch.cc
  3. Makefile_02:程序的编译和链接
  4. 现在的路由器是第几代了?每一代的特点是?
  5. int *p=NULL; *p=9;是错误的!
  6. 剑指offer十一:二进制中1的个数
  7. jvm十一:类加载器双亲委托机制
  8. python三十四:json模块
  9. 从搭建脚手架到在npm上发布react组件
  10. 多表操作,常用非常用字段