2013-11-04 151 views
-1

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

Upd:哦,代码!

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

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(); 
+5

分享你试过的代码。 –

+1

在Javascript中,您获得了全局和局部变量,Google对这两件事情进行了处理。 :)另外 - http://mattgemmell.com/2008/12/08/what-have-you-tried/ – Nathan

+0

通过使用各种方式来声明VAR我仍然得到NaN和未定义,同时测试它与8 + 9输出。同时使用window.GLD和GLD = 0而不是var GLD = 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 

所以,如果你仍然有不确定的问题/ NaN的话,应该是其他成才。

+0

嗨!谢谢。看起来这是一个正确的解决方案,但我已经通过从零开始重新创建goDeeper来完成它,同时也让它变得更加容易,并且获得了一些代码练习。我仍然感激:3 –