function class1(){
this.a1 = "aaa";}var aa = new class1();alert(aa["a1"]);
alert(aa.a1);

解决方案 »

  1.   

    aa[6]是数组元素!aa['field3']是数组实例的动态属性!
    aa.property1这个同上,等价写法是aa['property1']!结论:用数组就够了,哈
      

  2.   

    function class1(){
    this.a1 = "aaa";}var aa = new class1();alert(aa["a1"]);
    alert(aa.a1);aa[0]=123;
    alert(aa[0]);
      

  3.   

    谢谢cloudgamer 
    function class1()
    {
        this.a1 = "aaa";
    }
    var aa = new class1();
    alert(aa["a1"]);
    alert(aa.a1);
    aa[0]=123;
    alert(aa[0]);
    上述做法我基本明白了,我理解为直接赋值,然后就可以直接取值了。我想继续请问:可不可以不直接赋值,取值时再动态计算?
    比如我有如下类:
    function class1()
    {
        var _data = new Array('张三',26,'136012345678'); //注意是私有变量
        ......
    }
    如何能做到:
    var emp1 = new class1();
    alert(emp1[0]);//返回张三
    alert(emp1[1]);//返回26
      

  4.   

    如果采用直接赋值的方法,我知道可以如下实现:
    function   class1() 

        var _data = new Array('张三',26,'136012345678');   //注意是私有变量 
         for(var i=0;i<_data.length;i++)
        {
           this[i] = _data[i];
        }

    有不直接赋值的其他方法吗?
      

  5.   

    直接用数组...不过你这需求,有点不明,如果是0-n,那直接用数组,随便封装点方法创建一个自己的数组对象就可以了.
    如果是object也可以同样的方法...什么意思.
    什么叫 不直接赋值的其他方法?
      

  6.   

    那直接用数组,随便封装点方法创建一个自己的数组对象就可以了这句话的意思是
    <script type="text/ecmascript">
    var MakeArray = function () {
    var a = [false,1,2,"3"];
    a.property = this.property;
    return a;
    }MakeArray.prototype.property = function () { alert("xx"); };
    var c = new MakeArray;
    c.property();
    alert(new Number(c[0]));
    alert(c[1]);
    alert(c[2]);
    alert(new Number(c[3]))
    c[4] = 4;
    alert(c.length);
    </script>
      

  7.   

    看看这个:jscriptFrame(1) Class基类
      

  8.   

    <script> 
    function Class1(){
    this[6]=123;
    this['field3']=456;
    this.property1=789;
    this.property2="abc";
    }
    var obj=new Class1();
    document.write(obj[6],"<br />");
    document.write(obj['field3'],"<br />");
    document.write(obj.property1,"<br />");
    document.write(obj.property2,"<br />");
    </script>