无法访问对象的数组

时间:2013-08-08 15:40:37

标签: javascript

以下是我的javascript代码:

function A (no ){
    this.no=no;
};
function AController (){
    this.amount =0;
    this.array=[]; 
};
AController.prototype.initArray=function(){

    for(var i=1;i<=this.amount;i++){

        var tem=new A(i) ;
        this.array.push(tem);
    }
};

然后我执行某个地方

var f=new AController();

f.amount=2;
f.initArray();
for(var i=1 ;i<=2;i++){    
   f.array[i].no=0;    
}

但它始终报告

JS: TypeError: f.array[i] is undefined

欢迎评论

1 个答案:

答案 0 :(得分:4)

您需要从0

循环播放
for (var i = 0; i < 2; i++) {
    f.array[i].no = 0;
}

push次操作后,数组为[A(1), A(2)],因此f.array[2]将为undefined。由于您尝试在no array的第3个对象上分配undefined属性,因此您收到了该错误。