Javascript 使用构造函数中的循环创建多个对象

Javascript 使用构造函数中的循环创建多个对象,javascript,Javascript,我在尝试在构造函数的函数中创建多个对象时遇到问题 我正在尝试创建多个对象,每个对象都有数组指针,每个对象都有名称player(x),因此它将是player0:[array],player1:[array],但它不起作用。我得到了错误 无法设置未定义的属性“0” 代码: 函数播放器(){ this.hand=[] } 函数播放器(){ } Players.prototype.createPlayers=函数(x){ for(设i=0;i

我在尝试在构造函数的函数中创建多个对象时遇到问题

我正在尝试创建多个对象,每个对象都有数组指针,每个对象都有名称
player(x)
,因此它将是
player0:[array]
player1:[array]
,但它不起作用。我得到了错误

无法设置未定义的属性“0”

代码:

函数播放器(){
this.hand=[]
}
函数播放器(){
}
Players.prototype.createPlayers=函数(x){
for(设i=0;i
这很有效。试试看,这是你想要的吗

function Player () {
  this.hand = []
}

function Players () {
  this.player = [];
}

Players.prototype.createPlayers = function (x) {
    for (let i = 0; i < x; i++) {
      this.player[i] = new Player()
  }
}

let gamer = new Players()
console.log(gamer)

gamer.createPlayers(3)
console.log(gamer.players)
函数播放器(){
this.hand=[]
}
函数播放器(){
this.player=[];
}
Players.prototype.createPlayers=函数(x){
for(设i=0;i
您从未在
Players
实例添加
this.player=[]上创建
player
属性
Players
constructorb中,但我在原型上创建它,它循环并创建一个新对象。在使用它之前,您需要初始化数组。我希望直接在对象上创建它,每个对象将有一个不同的名称player1:[hand],player2:hand,而不是在一个额外的数组中
function Player () {
  this.hand = []
}

function Players () {
  this.player = [];
}

Players.prototype.createPlayers = function (x) {
    for (let i = 0; i < x; i++) {
      this.player[i] = new Player()
  }
}

let gamer = new Players()
console.log(gamer)

gamer.createPlayers(3)
console.log(gamer.players)