javascript - 修改函数内的全局 javascript 变量

标签 javascript jquery

我正在尝试在函数内克隆一个 json 对象,希望访问该函数外部的对象。但是当函数完成后,对象似乎仍然是未定义的。好像不是同一个变量?

var jsonUserObj;
$.getJSON("user.json", function(content){
    jsonUserObj = $.parseJSON(JSON.stringify(content));
    console.log(content);
    console.log(jsonUserObj); //looks fine!
});
console.log(jsonUserObj); //undefined

回调函数内部包含所有数据,但不会保留在回调函数之外。如何使其在全局范围内均可评估?

最佳答案

$.getJSON 是异步的,因此代码末尾的 console.log 在 $.getJSON 返回其结果之前运行。

您应该修改回调内的变量(其中看起来不错),然后在该函数内使用该变量,此回调是您可以保证设置变量的唯一地方。

您还可以使用 $.ajax 的同步版本,但这确实不推荐(而且可能没有必要)。

关于javascript - 修改函数内的全局 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13031467/

相关文章:

php - 如何使用 PHP 中的 phatomjs 在下载的页面上执行 Javascript?

c# - 如何查看哪些文档已打开?

javascript - AngularJS - onclick 中的 {{$index}}

javascript - 暂停函数执行流程,直到 ajax 请求完成

javascript - 下拉菜单中的鼠标悬停和鼠标移开功能

javascript - 我想使用 javascript 调用 Controller

javascript - 理解 module.exports 与回调

javascript - Ajax调用总是失败

javascript - 如何使用 JS 获取不同的值并对 JSON 的总数求和

javascript - 基于计数器值的 Css3 div 渐变背景动画?