在console.log中,var damage未定义。我错过了什么?我已经在原型中定义了损坏但仍然没有。有任何想法吗?基本上只需要生成随机数,然后从玩家健康状况中减去该数字,并将剩余余额显示为受到的伤害量。
function Player(name, weapons) {
this.playerName = name;
this.playerHealth = 10;
this.playerStrength = 2;
this.playerWeapons = [];
}
Player.prototype.applyDamage = function(damage) {
var damage = Math.floor(Math.random() * 10);
var total = this.playerHealth - damage;
return total;
};
console.log("Player sustained " + damage + " " + "amount of damage.");
答案 0 :(得分:1)
您将damage
定义为 Player.prototype.applyDamage
内的变量,因此此函数damage
之外仍未定义
答案 1 :(得分:0)
Javascript中的变量具有函数范围。这意味着它们只能在声明它们的函数中被访问或分配,并且它们存在于函数的任何地方,即使变量是在函数的子部分内声明的。
异常是在任何函数(全局变量)之外声明的变量和用“let”而不是var声明的变量。用let声明的变量具有块范围。