2013-07-30 159 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