//class Person {} takes in 3 arguments (string ,number, string)
var pArray: Person[ ] = [ ];
var newP;
for (var i = 0; i < 10; i++) {
newP = new Person("", Math.floor(Math.random() * 1000), "");
pArray.push(newP);
}
使用上面的代码,我得到一个充满10个数字的数组,所有数字都相同。结果是最后创建的数字中的10个(第10个数字)。这适用于基本类型,但不适用于对象类型。
发生了什么以及如何纠正它?
答案 0 :(得分:1)
您的代码没问题。 把它放在Playground(http://www.typescriptlang.org/Playground/)中运行它并在新的tapbage上打开控制台:
class Person{
number1:number;
constructor(string1 : string, _number1 : number , string2: string){
this.number1 = _number1;
}
}
var pArray: Person[ ] = [ ];
var newP;
for (var i = 0; i < 10; i++) {
newP = new Person("", Math.floor(Math.random() * 1000), "");
pArray.push(newP);
}
for (var j = 0; j < pArray.length; j++) {
console.log(pArray[j].number1);
}