0

下面是我的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

欢迎您的评论

4

1 回答 1

4

你需要从0

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

运算后push,数组是[A(1), A(2)],所以f.array[2]将是undefined。由于您尝试在which isno中的第三个对象上分配属性,因此您收到了该错误。arrayundefined

于 2013-08-08T15:43:31.037 回答