zoukankan      html  css  js  c++  java
  • js高级编程中命名空间的两种用法

    第一种:
    // 声明一个全局对象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());//命名空间

  • 相关阅读:
    MSSQL大量数据时,建立索引或添加字段后保存更改超时该这么办
    POJ 3261 Milk Patterns (后缀数组)
    POJ 1743 Musical Theme (后缀数组)
    HDU 1496 Equations (HASH)
    694. Distinct Substrings (后缀数组)
    POJ 1222 EXTENDED LIGHTS OUT (枚举 或者 高斯消元)
    POJ 1681· Painter's Problem (位压缩 或 高斯消元)
    POJ 1054 The Troublesome Frog (hash散列)
    HDU 1716 排列2
    HDU 4405 Aeroplane chess (概率DP & 期望)
  • 原文地址:https://www.cnblogs.com/marsleoguo/p/3449740.html
Copyright © 2011-2022 走看看