各位,
我在“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;
我认为这应该是一个简单的练习,按指定的顺序加载一系列脚本文件,等待所有脚本加载,然后调用“MyFunction”,它引用全局变量“GAME”。但是,当我在 Firefox 中加载它时,我收到 TypeError: GAME is undefined
错误。更让我困惑的是,IDE 的智能感知在其引用点拾取所有 GAME 的成员对象(包括“棋盘”),因此毫无疑问全局变量至少在 IDE 上下文中被正确识别。
任何建议将不胜感激。
最佳答案
尝试重新排序 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>
中定义了全局变量标签而不是文件。而且效果很好。
关于javascript - "Undefined"全局变量 - 非常奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17938234/