重新理一下表述方式,看看能不能让大家理解我的意图:
我想构造一个函数,大概包括下面内容
var w={
ball:[]-----{color:"",size:0}
}然后允许我如下赋值
w.ball[0].color="red"
w.ball[0].size=50w.ball[1].color="blue"
w.ball[1].size=30
.....就此想请教如何构造此函数

解决方案 »

  1.   

    直接写就可以了var w = {
      ball:[]
    }
    你之后这样赋值
    w.ball[0] = {color:"red,size=50};
    保证没问题
      

  2.   

    其实js对象化很灵活....自定义构造函数 ,Array(),Image()等构造函数能让我们构造一个变量。其实我们自己也可以写自己的构造函数。自定义构造函数也是用 function。在 function 里边用 this 来定义属性。
    function <构造函数名> [(<参数>)] {
      ...
      this.<属性名> = <初始值>;
      ...
    }
    然后,用 new 构造函数关键字来构造变量:
    var <变量名> = new <构造函数名>[(<参数>)];
    构造变量以后,<变量名>成为一个对象,它有它自己的属性——用 this 在 function 里设定的属性。
      

  3.   

    你想动态添加值? 
    js 数组本身就是动态数组,可以动态添加
    1、 var arr=[]; arr[arr.length]={};arr[arr.length]={};......
    2、var arr=[]; arr.push({});arr.push({});arr.push({});arr.push({});....
    而且数组元素的每个值可以是不同类型
    3、var arr=[]; arr.push({a:'aaa'});arr.push(1);arr.push('asdfasf');arr.push({a:[1,2,3],b:true});....你可以自己封装一个对象,提供add 添加方法
    var stuList=function(){
      var arr=[];
     this.stu = function(name,age){this.Name=name;this.Age=age;};
      this.add=function(stu){arr.push(atu);};
    }
    var stus = new stuList();
    stu.add(new stus.stu('阿什顿',28));
      

  4.   


    是的,我也是这么用来着,只是我很想知道如何写才能够让人在 w={ } 中就可以看清楚 ball,color,size等之间的关系与关联。
      

  5.   

    再问一问
    var w = {
    qq,
    ball:[]
    }
    中,如何取得 w 里的对象的名称? 如 qq, ball
      

  6.   

    var w = {
    qq,
    ball:[]
    }
    w.qq={};
      

  7.   


    可以用文档注释说明
    var w = {
    // ball里面的元素存放的是json对象,
    // 规则如下:{color:"red",size=50}
    ball:[]
    }
      

  8.   

    for(name in w)alert(name + '的typeof是' + typeof w[name]);