首页 > 关于return对象的问题

关于return对象的问题

这个例子是找队友,如果是队友的放到partners要是敌人的话就放到enemies里,
他这里191行下把队友添加到一个数组对象下面,
为什么他在198行下return返回当前对象时却是数组对象players下面存的值,
这里的player1,player2,player3下的partners:Array不应该全为[0]吗?
也没看哪句代码把队友push到了newPlayer下去啊,这里全都是放在players下去了,这是怎么回事?是对象的地址引用吗?

楼主的代码中在创建一个新玩家的时候, 是将当前的玩家添加到 同一队玩家partners 中,

所以你的 player3player7partners 个数都为 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]

【热门文章】
【热门文章】