初学者javascript; for循环,对象数组以未定义的形式出现

时间:2013-08-22 14:52:34

标签: javascript object for-loop constructor

这是我的代码

function Person (name, age) {
this.name = name;
this.age = age;
}

var family = new Array();
family[0] = new Person("alice", 40);
family[1] = new Person("bob", 42);
family[2] = new Person("michelle", 8);
family[3] = new Person("timmy", 6);

for (i =0; i<= family.length; i++) {
    console.log (family[i].name);
}

这会产生错误:     TypeError:无法读取未定义的属性“name”

有人能从这里指出我正确的方向吗?

5 个答案:

答案 0 :(得分:3)

你正在迭代一次。

for (var i = 0; i < family.length; i++)

JavaScript数组从零开始,最后一个非空单元格在length - 1。因此,当索引等于长度时,你必须停止迭代,而不是当它大于长度时。

答案 1 :(得分:2)

您应该将测试条件更改为i < family.length,这样您就会超出范围。

答案 2 :(得分:1)

i < family.length怎么样?

答案 3 :(得分:1)

将&lt; =更改为&lt;。你超过了数组限制。

答案 4 :(得分:0)

它运作得很好。

for (i =0; i<= family.length; i++)

演示:http://jsfiddle.net/285Th/1/