2012-11-22 188 views
-1

在我的程序中,頂部有全局變量,供遊戲中的各種函數使用。當他們有時被稱爲未定義在控制檯中。我一直在玩這麼久,但似乎無法找到問題的根源。是因爲它們是數組還是有其他原因?全局變量超出範圍

var randomWord = []; 
var listOfWords = []; 
var gridSize = []; 
var populationNumber = []; 
var completionNumber = []; 
var attemptNumber = []; 

下面是在腳本中的小提琴......

http://jsfiddle.net/sYDs4/1/

+0

這jsFiddle沒有改變使用jQuery。也沒有HTML,似乎應該有一些... – thirtydot

+0

請修復JS小提琴 –

+0

在'nextButton'和'closeButton'中,'randomWord'變量被用作數字,而不是數組。 – jaudette

回答

1

這裏是不適合在評論一些評論...

if (populationNumber >= 6) { 
     var populationNumber = 6; 
    } 
    if (completionNumber >= 6) { 
     var completionNumber = 6; 
    } 

不應該在JS中完成,這是很危險的,因爲你創建一個與全局名稱相同的本地變量。甚至沒有提到你給一個應該是一個數組的變量(全局變量)分配一個數字。

function nextButton() { 
    //Next question click event 
    $('td').removeClass('highlight-problem'); 
    var r = randomWord; 
    while (r == randomWord) { 
     randomWord = Math.floor(Math.random() * (listOfWords.length)); 
    } 

此分配一個編號以randomWord其被用作在其他地方的陣列,但如在本功能的數字。 closeButton功能也一樣。