如何使变量引用与其他引用不同?

时间:2014-01-16 17:30:01

标签: javascript

我正在制作一个口袋妖怪游戏,其中每个口袋妖怪都是一个对象,每个玩家,玩家和对手随机获得一个不同的口袋妖怪

var pokeArray = [fryno, snark, tucoret];
var playerPoke = rand(pokeArray);
var oppoPoke = rand(pokeArray);

rand是我从数组中随机选取内容的函数 无论如何,问题是,当两者碰巧是相同的时候,我遇到了问题, 我们说两者最终都是fryno

playerPoke = fryno;
oppoPoke = fryno;

然后,当我对oppoPoke造成伤害时,它实际上对fryno造成了伤害,因此playerPoke也会受到伤害,因为它也是fryno < / p>

所以我想知道即使playerPokeoppoPokefryno,如果他们可以引用fryno而不是fryno的不同副本,是否可能本身 所以我对oppoPoke而不是fryno造成了伤害 如果有任何意义

1 个答案:

答案 0 :(得分:1)

您应该创建对象的克隆。或者更好的是,实现一些东西。

function Pokemon(species) {
    // look up species data
    this.hp = speciesData[species].hp;
    this.atk = speciesData[species].atk;
    // and so on
}

然后:

var playerPoke = new Pokemon(rand(pokeArray));

在这种情况下,pokeArray应该是一个物种名称数组,而不是一个对象数组。