zoukankan      html  css  js  c++  java
  • JavaScript创建命名空间

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
     <head>
      <title>在JavaScript中实现命名空间</title>
      <script language="JavaScript">
    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);
    }

    registerNamespace = function(nsName) {
        var rootObject = window;
        var namespaceParts = nsName.split('.');
        for (var i = 0;i < namespaceParts.length; i++) {
            var currentPart = namespaceParts[i];
            if (!rootObject[currentPart]) {
                rootObject[currentPart] = new Object();
            }
            rootObject = rootObject[currentPart];
        }
    }

    // 注册命名空间Grandsoft.GEA, Grandsoft.GCM

    registerNamespace("Grandsoft.GEA");
    registerNamespace("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();
      </script>
     </head>

     <body>

     </body>
    </html>

  • 相关阅读:
    Hadoop整理二(Hadoop分布式存储系统HDFS)
    Hadoop整理一(初识Hadoop)
    Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match
    Oracle登录
    神经网络一(用tensorflow搭建简单的神经网络并可视化)
    Qt程序启动画面播放(gif与swf两种动画格式)
    VS2008+GDI实现多幅图像的GIF动画制作
    C++读取特定路径下文件目录及文件名称
    求助——数据处理问题
    VC6.0读取Excel文件数据
  • 原文地址:https://www.cnblogs.com/cztom/p/916760.html
Copyright © 2011-2022 走看看