JS类中,静态方法怎么获取实例

dl_sfl 2012-12-19 01:18:32
我有一个类,有个静态方法,我想在静态方法中获取已经创建的实例,该怎么做呢?
...全文
363 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dl_sfl 2012-12-19
  • 打赏
  • 举报
回复
明白了,谢谢,我也觉得静态方法不适用我这么用。
  • 打赏
  • 举报
回复
要存储实例这样才能调用,居然存储了示例,静态方法就多余了,改进版本的,可以通过指定实例名称来调用
    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()
dl_sfl 2012-12-19
  • 打赏
  • 举报
回复
这个方法我想过,还有没有更好的方法,可能我没说清楚,我是想在一个类的静态方法中调用实例的方法
  • 打赏
  • 举报
回复
    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();

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧