仅作参考!// 定义数组!
var jsmenu = new Array(); 
// 为 jsmenu 增加动态属性active,active也是一个数组!
jsmenu['active'] = new Array();
// 通过变量 ctrlid 为 jsmenu 动态属性active(数组)的相应索引处赋值!
jsmenu['active'][ctrlid] = 

解决方案 »

  1.   

    var jsmenu = new Array();//jsmenu等于新数组对象
    jsmenu['active'] = new Array();//等效于jsmenu.active = new Array(); jsmenu的active属性等于新数组
    jsmenu['active'][ctrlid]   = "";//同理 jsmenu.['active'][ctrlid] = ...;ctrlid必须是一个字符串的变量名js中Object对象的 xxx["yy"] 这种写法表示xxx的一个名为"yy"的属性
    new Array()
    new String()
    new Function()
    new Number()
    new Date()
    ....
    都是以object为基类的对象 所以都可以这么写但
    var aa = "";
    var bb = 0;
    var cc = false;
    这些值类型对象比较特殊 没有办法扩展属性
      

  2.   


    JScript 中的数组是稀疏的。也就是说,如果一个数组具有三个元素,编号分别为 0、1 和 2,您就可以创建元素 50,而不必担心从 3 到 49 的参数。如果该数组有一个自动的 length 变量,(请参阅内部对象了解有关数组长度的自动监控的说明),该 length 变量被设为 51,而不是 4。当然您可以创建各元素的编号之间没有间隙的数组,不过没有必要这样做。在 JScript 中,对象和数组几乎相同。两个主要差别是对象没有自动长度属性,而数组没有对象的属性和方法。数组寻址
    使用方括号“[]”来寻址数组。方括号中是一个数值或一个值为整数的表达式。下面的示例假定在脚本的其他地方已定义了entryNum 变量,且已赋值。 theListing = addressBook[entryNum];
    theFirstLine = theListing[1];
    将对象作为关联数组
    通常,使用点运算符“.”访问对象的属性。例如,myObject.aProperty
    在这里,属性名称是一个标识符。也可以用索引运算符“[]”访问对象的属性。在这里,是把对象看作一个关联数组。关联数组是一种数据结构,它可以动态地将任意的数据的值与任意的字符串相关联。例如,myObject["aProperty"] // 与上面相同。
    尽管索引运算符更多地用于访问数组元素,当用于对象时,索引总是以字符串文字表示的属性名称。注意访问对象属性的两种方法的重要差异。运算符 属性名称作为 对属性名称的处理 
    点“.” 标识符 不能作为数据处理 
    索引“[]” 字符串文字 能被作为数据处理 
    在运行之前并不知道属性名称时,这个差异会有用(比如基于用户输入构造对象时)。要想从一个关联数组提取所有的属性,必须用 for … in 循环。另外楼上对字符串对象的讲解有一点点小的问题String 对象可用字符串文字显式创建。用这种方法创建的 String 对象(指以标准字符串形式)与用 new 运算符创建的 String 对象处理上不同。所有字符串文字共享公用的全局字符串对象。如果为字符串文字添加属性,则它对所有标准字符串对象都是可用的: var alpha, beta;
    alpha = "这是一个字符串";
    beta = "这也是一个字符串";alpha.test = 10;
    在前一示例中,这时为 beta 和所有将来的字符串定义 test。然而,在下面的例子中,被添加属性的处理略有不同: var gamma, delta;
    gamma = new String("这是一个字符串");
    delta = new String("这是也一个字符串");gamma.test = 10;
    在这种情况下,不为 delta 定义 test。每个用 new String 声明的 String 对象有其自己的一组成员。这是对 String 对象和字符串文字的处理不同的唯一情况。 以上资料来源:JScript 语言参考
    ----------------------------
    不过对于string这里仍旧有一点小问题,后一种情况似乎没有问题,但前面的string在ie测试时test都为undefined.
      

  3.   

    就是数组的成员也是数组~~
    var arr=[1,"123",[5,6,7],{a:123,b:456}];
    //arr[0]是1
    //arr[1]是"123"
    //arr[2]是数组
    //所以arr[2][0]是5,arr[2][1]是6
    //arr[3]是个对象,arr[3].a是123,arr[3].b是456
      

  4.   

    但有个问题,那么jsmenu到底是个什么呢?他定义为了数组,可又有active属性,是个对象?
    如果按5楼的那种写法,应该怎么写出?
    jsmenu={}
    还是
    jsmenu=[]?