2013-07-30 198 views
1

伙计们,“未定义”全局变量 - 很奇怪

我指定的全局变量“global.js”如下:

var GAME = { 
    board: { 
     /* some custom properties here */ 
    }, 
    ... 
} 

在我的HTML文件,我加载在我的脚本文件顺序如下:

<script src="/script/jquery.js"></script> 
<script src="/script/global.js"></script> 
<script src="/script/setup.js"></script> 
<script src="/script/main.js"></script> 

在“main.js”,这是在最后加载的,是一个简单的jQuery声明如下:

$(document).ready(function() { 
    MyFunction(); 
}); 

而“MyFunction的”在“setup.js”文件中定义,在我声明的变量如下:

var board = GAME.board; 

我想这应该是装载了一系列的脚本的简单锻炼文件按照指定的顺序,等待所有的脚本被加载,然后调用引用全局变量'GAME'的'MyFunction'。但是,当我在Firefox中加载它时,出现TypeError: GAME is undefined错误。再加上我的困惑,IDE的智能感觉会在其参考点处拾取所有GAME的成员对象(包括'board'),所以毫无疑问,全局变量至少在IDE环境中被正确识别。

任何意见将不胜感激。

+1

检查你的js错误控制台,并确保当'global.js'执行时没有发生任何错误。 –

+0

@ go-oleg在浏览器控制台中,我看不到来自'global.js'的错误/异常。 – BinaryCat

+1

请提供一个完整的global.js(尽量减少,但不要太大,以至于它完全消除了这个问题) – Quentin

回答

-1

尝试重新排序js文件,我用它来定义所有其他文件之前的全局文件。 我认为正确的顺序必须

<script src="/script/global.js"></script> 
<script src="/script/jquery.js"></script> 
<script src="/script/setup.js"></script> 
<script src="/script/main.js"></script> 

在我定义了一个<script>标签,而不是在文件中,全局变量最新的项目。它工作正常。

+2

我不认为这可以解决任何问题。 jquery.js依赖于'global.js'的概率几乎为0. –

+0

因此,尝试在脚本标记中定义它们 – StupidDev