以下是我的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
欢迎评论
答案 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
属性,因此您收到了该错误。