function MyObject(id,state,type,isChest)
        {
            this.id=id;
            this.state=state;
            this.type=type;
            this.isChest=isChest;
        }
//自定义对象集合
        var MyObj={};赋值的时候使用这种赋值法有效:MyObj[zuobiao]=new MyObject(zuobiao,0,type,isChest);
我使用
alert(MyObj[zuobiao].type);时是有值的。但是我在其它地方遍历的时候:function myclick()
{
                      alert("1");
    for( var i in MyObj)
    {
        alert(i.zuobiao);
        }
}MyObj为全局的。
在javascript里自定义对象集合是不是不能这么用?
上网查了一下,没看到js上写关于这方面的用法。我想知道该怎么使用自定义集合,在js中。

解决方案 »

  1.   

    我没有看错的话,MyObj 是MyObject的对象,循环的时候i就应该是MyObject对象的一个属性,i.zuobiao肯定不会有值,试着只打印i 看行不?   慢慢alert()应该可以出来
      

  2.   

    function myclick() 

                          alert("1"); 
        for( var i in MyObj) 
        { 
            alert(MyObj[i].type);
            } 
    } 楼主要的是不是这种效果???
      

  3.   

    可以in遍历字段,不是for( var i in MyObj) 
        { i是   this.id=id  前面那个
    如果写为  this.id = 1
    那  i === "id"
            alert(MyObj[i].type);
            } 
      

  4.   

    参见这个方法O.extend = function (destination, source) {
    for (var property in source) {
    destination[property] = source[property];
    }
    return destination;
    };
      

  5.   

    冷静点 在看看集合(键值对 列表)的介绍
    for( var i in MyObj)
        {
            alert(i.zuobiao);
            } 
    你的MyObj 是键值对集合 这里枚举出的的 i 代表 myobj中的一个键
    MyObj[i]才是键i保存的值