javascript - "Undefined"全局变量 - 非常奇怪

标签 javascript variables undefined global

各位,

我在“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/

相关文章:

c# - 通过 C# Powershell 变量设置

javascript - 避免在纸质表单条形码 LiveCycle Javascript 上出现 "Null"

javascript - 如何在带有 iframe 的页面中仅附加到主体标签?

sql - 声明 myvar int(11);在 mysql 例程中返回语法错误

c# - "timespan?"在 C# 中是什么意思?

javascript - React Native如何处理Cannot read property 'undefined' of undefined

JavaScript getElementsByTagName() 未定义、IE 失败、AJAX XML 文件

C# WebBrowser 控件——在 AJAX 之后获取文档元素?

javascript - 使用 fabricjs 将 "bleed area"添加到 Canvas ?

javascript - 禁用 HTML5 弹出表单验证消息