2012-11-22 191 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功能也一样。