1.
code:
function Person(name, age) {
this.name = name;
this.age = age;
}
var array = new Array();
var i;
for ( i=0; i < 4; i++ ) {
var person = new Person ("i", i);
print(person.name);
array.push(person);
print(array[i].name);//为啥这边输出的是undifined呢
}
for ( i=0; i < 4; i++ ) {
print(i + ":" + array[i].name);
print("----------");
}
原因:
var array = new Array (4); // 此时数组中的值被初始化为 undefined
for( var i = 0; i < 4; i++ ) {
var person = new Perspn(name, age);
array.push(person); // 此时是在数组的尾巴添加的,故数组的前面四个位置的值是undefined
}
2.
code:
function Person(name, age) { this.name = name; this.age = age; } var array = new Array(); var i; for ( i=0; i < array.length; i++ ) { var person = new Person ("i", i); print(person.name); array.push(person);//这里会对数组的长度加1,造成死循环 } for ( i=0; i < 4; i++ ) { print(i + ":" + array[i].name); print("----------"); }