我有一个看起来像这样的功能:
window.attack = function(enemyHealth){
attackChance = Math.floor(Math.random()*11);
console.log("enemyHealth: "+enemyHealth); //undefined...
if (attackChance < 5) { //hit
hitDamage = Math.floor(Math.random()*playerDamage+1);
enemyHealth = enemyHealth - hitDamage;
$('#enemyhealth').val(enemyHealth);
if (enemyHealth < 1) {
alert('You killed the '+currentEnemy);
removeOverlayNow();
}
} else if (attackChance >= 5) { //miss
hitDamage = Math.floor(Math.random()*maxDamage+1);
alert('You miss and get attacked for '+hitDamage);
health = health - hitDamage;
$(healthDisplay).val(health);
checkHealth();
}
}
我的变量是通过以下方式抛出的:
onclick="flee('+currentEnemyHealth+')"
但当我console.log
或alert()
时,我得到的是Undefined
......
我在这里错过了一招吗?我想如果我将一个变量传递给函数(在本例中为enemyHealth
),我应该能够检索它吗?
感谢。
P.S。
只是想我会说即使我通过函数传递了一个卡编码的数字(例如5) - 它仍然以Undefined
答案 0 :(得分:1)
你确定你的意思不是:
onclick="flee("+currentEnemyHealth+")"
修复引号,以便将currentEnemyHealth的值嵌入到字符串中?
答案 1 :(得分:1)
你打电话应该是
onclick="flee(" + currentEnemyHealth + ")"
希望这有帮助。
答案 2 :(得分:0)
currentEnemyHealth不在javascript调用的范围内。