创建一个用户定义的对象类型数组

时间:2013-11-18 07:30:46

标签: arrays object typescript

//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个数字)。这适用于基本类型,但不适用于对象类型。

发生了什么以及如何纠正它?

1 个答案:

答案 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);
    }