Javascript 无法访问对象的数组

Javascript 无法访问对象的数组,javascript,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.

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

欢迎您发表评论

您需要从
0

for (var i = 0; i < 2; i++) {
    f.array[i].no = 0;
}
for(变量i=0;i<2;i++){
f、 数组[i].no=0;
}

push
操作之后,数组是
[A(1),A(2)]
,因此
f.array[2]
将是
未定义的
。由于您试图在
数组中的
未定义的
第三个对象上分配
no
属性,因此出现了该错误。

您需要从
0

for (var i = 0; i < 2; i++) {
    f.array[i].no = 0;
}
for(变量i=0;i<2;i++){
f、 数组[i].no=0;
}

push
操作之后,数组是
[A(1),A(2)]
,因此
f.array[2]
将是
未定义的
。由于您试图在
数组中的第三个对象上分配
no
属性,该对象是
未定义的
,因此出现了该错误。

Um。。。您确定问题出在您发布的代码上吗?我看不到
f.cardArray
任何地方…嗯,你的代码中没有任何地方使用
f.cardArray
此外,正如在一个现已删除的答案中所提到的,在迭代数组时,你应该从
0
索引开始-
数组[2]
中长度为2的数组将返回一个错误。我编辑了问题,f.cardArray应该是f.array。sza的回答是正确的。。。您确定问题出在您发布的代码上吗?我看不到
f.cardArray
任何地方…嗯,你的代码中没有任何地方使用
f.cardArray
此外,正如在一个现已删除的答案中所提到的,在迭代数组时,你应该从
0
索引开始-
数组[2]
中长度为2的数组将返回一个错误。我编辑了问题,f.cardArray应该是f.array。sza的回答是正确的。事实上,他已经按照读取数组的方式填充了数组,所以它应该可以工作,不是吗?@Virus721:不是最后一个数组元素。@collapsar Ho我刚刚意识到他使用了.push()而不是[],但在这种情况下它会工作。@Virus721:是的,它会工作。事实上,他按照读取数组的方式填充了数组,所以它应该可以工作,不是吗?@Virus721:不是最后一个数组元素。@collapsar Ho我刚刚意识到他使用了.push()而不是[],但在这种情况下它会工作的。@Virus721:是的,它会工作的。
for (var i = 0; i < 2; i++) {
    f.array[i].no = 0;
}