JS:从函数外部调用变量

时间:2013-11-04 00:16:04

标签: javascript function nan

所以,我在函数之前输入变量,以便让它们随着每个函数调用而增长。 但是当我试图打印它们或在计算中使用它们时,JS返回NaN或undefined。从功能外部打电话,一切都还可以。 我错过了什么?

更新:哦,代码!

Upd2:通过各种方式声明var我仍然在使用8 + 9输出测试时仍然获得NaN和未定义。同时使用window.GLD和GLD = 0而不是var GLD = 0;据我所知,我可以声明它没有函数var并且不会影响它。但是我如何从函数外部拖动变量?

Upd3:在尝试使用var GLD = GLD + 1(在函数内声明它)后,我仍然得到NaN。所以最后一个问题是:如何从外部获取变量内容到函数中?

    var depth = 0;
    var maxHP = 10;
    var currentHP = 10;
    var DMG = 2;
    var ARM = 1;
    var GLD = 0;
    var currentExp = 0;
    var neededExp = 5;

    var GobHP = 2;
    var GobHPMax = 2;
    var CurrentGobHP=2
    var GobDMG = 1;
    var GobDEF = 0;
    var GobBSInc = 2;
    var GobexpInc = 2;
    var GobDmgDone = 1;

    var dmgDone=0;
    var wpnTier=0;

    var turn=1;

    var nextEvent=0;

    document.getElementById("statusChar").innerHTML="HP: "+currentHP+"/"+maxHP+" DMG: "+DMG+" ARM: "+ARM+" GLD: "+GLD+" EXP: "+currentExp+"/"+neededExp+" Depth: "+depth;
    //It's ok here - code dosent goes NaN or undefined
    function goDeeper()

     {      depth++;
        document.getElementById("statusChar").innerHTML="HP: "+currentHP+"/"+maxHP+" DMG: "+DMG+" ARM: "+ARM+" GLD: "+GLD+" EXP: "+currentExp+"/"+neededExp+" Depth: "+depth;
// and here it dies. Prompt to stop it from going to next step.
            prompt();

1 个答案:

答案 0 :(得分:0)

你提供的内容几乎正常:函数goDeeper()没有结束}。这几乎没有变化的功能:

function goDeeper()
{      
    depth++;
    document.getElementById("statusChar").innerHTML += "<br>HP: " + currentHP + "/" + maxHP + " DMG: " +DMG + " ARM: " + ARM + " GLD: " + GLD + " EXP: " + currentExp + "/" + neededExp + " Depth: " + depth;
    // prompt();
}

我刚刚将其更改为新行中的每个输出。在多次调用goDeeper()之后,结果是:

HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 0
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 1
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 2
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 3
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 4

因此,如果你仍然遇到undefined / NaN的问题,那么它应该是其他的。