我有一个类,有个静态方法,我想在静态方法中获取已经创建的实例,该怎么做呢?

解决方案 »

  1.   

        function Coding123_net(name) {
            Coding123_net.instances[Coding123_net.instances.length] = this;
            this.name = name;
            this.showwho = function () { alert(this.name); }
        }
        Coding123_net.instances = [];
        new Coding123_net("showbo");
        new Coding123_net("编程设计网");
        new Coding123_net("www.coding123.net");
        for (var i = 0; i < Coding123_net.instances.length; i++) Coding123_net.instances[i].showwho();
      

  2.   

    要存储实例这样才能调用,居然存储了示例,静态方法就多余了,改进版本的,可以通过指定实例名称来调用    function Coding123_net(name, instancename) {
            if (Coding123_net.instances[instancename]) instancename += '_1';//如果重名则重新命名实例名称
            Coding123_net.instances[instancename] = this;
            this.name = name;
            this.showwho = function () { alert(this.name); }
        }
        Coding123_net.instances = {};
        new Coding123_net("showbo",'i1');
        new Coding123_net("编程设计网", 'i1');//这个重名了,会重新命名为i1_1
        new Coding123_net("www.coding123.net", 'i3');
        Coding123_net.instances['i1'].showwho()
        Coding123_net.instances['i1_1'].showwho()
        Coding123_net.instances['i3'].showwho()