jQuery / JavaScript - 将变量传递给函数

时间:2010-08-02 13:14:51

标签: javascript jquery

我有一个看起来像这样的功能:

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.logalert()时,我得到的是Undefined ......

我在这里错过了一招吗?我想如果我将一个变量传递给函数(在本例中为enemyHealth),我应该能够检索它吗?

感谢。

P.S。
只是想我会说即使我通过函数传递了一个卡编码的数字(例如5) - 它仍然以Undefined

的形式到达

3 个答案:

答案 0 :(得分:1)

你确定你的意思不是:

onclick="flee("+currentEnemyHealth+")"

修复引号,以便将currentEnemyHealth的值嵌入到字符串中?

答案 1 :(得分:1)

你打电话应该是

onclick="flee(" + currentEnemyHealth + ")"

希望这有帮助。

答案 2 :(得分:0)

currentEnemyHealth不在javascript调用的范围内。