0

新しいインスタンスを作成したら、オブジェクトの属性として新しい配列を作成したいと考えています。しかし、Chrome で次のエラーが表示されます。プレイヤーは不明のようです。しかし、なぜ?

function Team(name) {
    this.Name = name;
    this.Players = new Array();
}

Team.prototype.AddPlayer = new function (player) {
    this.Players.push(player); //error
}
4

2 に答える 2

2

この行の「new」を削除するだけです

Team.prototype.AddPlayer = function (player) {
于 2012-11-06T17:30:19.520 に答える
0

Teamコードは正しいですが、を使用して新しいインスタンスを作成する必要がありますnew

var t = new Team("foo");
t.AddPlayer("bar");

おっと、コードに 1 つのエラーがあります。割り当てのnew前から削除functionします。.prototype

function Team(name) {
    this.Name = name;
    this.Players = new Array();
}

Team.prototype.AddPlayer = /*new*/ function (player) {
    this.Players.push(player);
}

関数の前にあったためnew、実際には無名関数をコンストラクターとして使用していました。つまり、呼び出されていました。

明確にするために、コンストラクターの前に配置されない限りnew 、新しい関数を作成しません。Function

于 2012-11-06T17:28:56.350 に答える