我正在尝试在函数内克隆一个 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/