这个例子是找队友,如果是队友的放到partners要是敌人的话就放到enemies里,
他这里191行下把队友添加到一个数组对象下面,
为什么他在198行下return返回当前对象时却是数组对象players下面存的值,
这里的player1,player2,player3下的partners:Array不应该全为[0]吗?
也没看哪句代码把队友push到了newPlayer下去啊,这里全都是放在players下去了,这是怎么回事?是对象的地址引用吗?
楼主的代码中在创建一个新玩家的时候, 是将当前的玩家添加到 同一队玩家
的 partners
中,
所以你的 player3
和player7
的 partners
个数都为 0
(因为它们都是该队里最后创建的,所以还会有后来的人,添加到它们的partners
中).
原因 在于没有将同一队的玩家添加到新建的玩家的 partners
中(但却有将不是同一队的玩家添加到enemies
中, 所以所有的玩家的 enemies
数据是正确的, 但 partners
却不正确 2,1,0
).
要修正这个问题,只需要像 194
行那样, 在191
行的后面加上newPlayer.partners.push(player);
即可.
关于你的也没看哪句代码把队友push到了newPlayer下去啊,这里全都是放在players下去了,这是怎么回事?
第197
行就是将新创建的 玩家 添加到 players
中.
我怀疑你是不是眼睛不太好使……
为什么他在198行下return返回当前对象时却是数组对象players下面存的值
你说的数组对象 players 下面的值那是在 197 行的时候 inline 打印出来的,这是因为 197 行里 players 调用了 .push
方法,自己去看该方法的返回值是什么
而 198 行的 return 就是返回 newPlayer 而已,所以你上面那句问话前言不搭后语,只能让我觉得你眼神不好使。
后面的问题就更莫名其妙了,191 行明明有 push,为什么应该全为 [0]
?