2013-11-04 225 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 –