K伙计我正在学校的一个项目(用javascript),我正在建造一个地下城。很可能不是你见过的最好的代码,但是呃,我在学校就读。
我收到了错误:
function damageFormula()
{
var damage = myDamage(myWeapon); // I get the error on this function
var doDamage = Math.floor(0.085 * damage * myAttackLvl + (myLevelLvl/5) - (1+15*Math.random()));
return doDamage;
};
myDamage功能:
function myDamage(myWeapon)
{
switch(myWeapon)
{
case "Spike Sword":
myDamage += 10;
break;
case "Magic Long Sword":
myDamage += 20;
break;
default:
myDamage += 3;
break;
}
return myDamage;
};
武器变量是:
var myWeapon = "Spike Sword";
myDamage变量是:
var myDamage = 10;
有谁知道我为什么会收到这个错误和/或如何解决它?
如果您需要更多信息,请向我询问,我会尝试尽可能好地回答。
答案 0 :(得分:0)
因为myWeapon
是Spike Sword
,所以你这样做了:
case "Spike Sword":
myDamage += 10;
break;
但是,myDamage()
是一个函数,而不是一个数字,所以这对JavaScript控制台没有意义!相反,它将myDamage
转换为字符串,然后将"10"
放在字符串的末尾。
现在,myDamage
是一个字符串。但是,在damageFormula()
中,您将myDamage
称为函数。因此,虽然对我来说可能会抛出TypeError
我建议您var damage = 0;
并执行damage += 10;
,damage += 20;
等。
答案 1 :(得分:0)
警惕您的名字 - 您同时使用myDamage
作为函数和的名称作为变量的名称!这将在您的代码中创建不一致的状态。
你可能在其他地方使用var myDamage
,在范围内使其为空。