我正在尝试解决学生的Javascript代码问题。目前它看起来像这样:
mvn package
当我调用alien1.hp时它等于61而alien2.hp它也等于61.这是为什么?如何更改它,以便每个Alien实例的健康状况都不同。在此先感谢!!
答案 0 :(得分:4)
因为您只有一个Alien
,所以您只需拨打一次RNG。你可能也希望Alien成为它自己的东西,而不是使用Object
构造函数。
function Alien() {
this.hp = Math.floor(Math.random() * 100);
}
> a1 = new Alien();
=> Alien {hp: 13}
> a2 = new Alien();
=> Alien {hp: 42}
这允许您向外星人的原型等添加方法,例如,
function Alien(name) {
this.name = name;
this.hp = Math.floor(Math.random() * 100);
}
Alien.prototype.toString = function() {
return 'Alien "' + this.name + '", HP: ' + this.hp;
}
tom = new Alien('Tom');
console.log("" + tom);
=> Alien "Tom", HP: 13
答案 1 :(得分:0)
您将始终只有一个Alien
具有相同的值,我建议使用一个函数:
function Alien() {
return { hp: Math.floor(Math.random()*100) };
};
var alien1 = new Object(Alien());
var alien2 = new Object(Alien());
这样,Alien
函数每次调用时都会返回一个不同的随机hp对象。