javascript - 如何在 JavaScript 中创建全局变量?

标签 javascript variables scope global

所以我希望仪表板能够在一个函数内进行修改,然后显示在另一个函数中。有点像java中的公共(public)变量。这可能吗?请参阅下面我的代码。

var dashboard = new Array();
function init() {
    getXML(); //1.  goto get XML 2.// XML Parser
    displayXML();
}

function getXML() {
    console.log("getXML REACHED");
    $.ajax({
        type: "GET",
        url: "file:///H:/ModelDisplayV1/ModelDisplayV1/files/dashboard.xml",
        dataType: "xml",
        success: xmlParser
    });
}

function xmlParser(xml) {
    dashboard[0] = 7;
    console.log(dashboard);
});
}

function displayXML() {
    console.log("display xml function reached!!!");
    console.log(dashboard);
}

当我最终尝试获取console.log(dashboard)时,它显示仪表板未定义。我认为通过在我的功能之外声明仪表板,它将是全局的。如何才能在一个函数中更改仪表板的内容并在另一个函数中检索它们?

与 Javascript 相比,我更熟悉 Java。

最佳答案

ajax 调用是异步的,因此在实际填充仪表板之前,会在 init() 方法中调用 displayXML() 函数。因此,请这样做:

var dashboard = new Array();
function init() {
    getXML(); //1.  goto get XML 2.// XML Parser
}

function getXML() {
    console.log("getXML REACHED");
    $.ajax({
        type: "GET",
        url: "file:///H:/ModelDisplayV1/ModelDisplayV1/files/dashboard.xml",
        dataType: "xml",
        success: xmlParser
    });
}

function xmlParser(xml) {
    dashboard[0] = 7;
    console.log(dashboard);
    displayXML();
});
}

function displayXML() {
    console.log("display xml function reached!!!");
    console.log(dashboard);
}

关于javascript - 如何在 JavaScript 中创建全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9609734/

相关文章:

javascript - 从 'angularfire2/database' 导入 {AngularFireDatabase, FirebaseListObservable}

jquery - 在 jQuery 中更改一个以变量作为 id 的类?

c++ - 错误 : ' ' was not declared in this scope

javascript - 什么时候不应该对 JavaScript 进行 gzip 压缩?

javascript - js 中函数的上下文可见性 (React.js)

javascript - 如何在 jQuery 中使用 PHP 变量(在 Wordpress 插件中)

python - 为什么列表和字符串上的方法在 python 中的工作方式不同

python - 我如何访问Python内部类中的全局变量

java - JSP EL 和范围属性混淆

javascript - 将 JQuery 插件添加到 typescript