我是 JavaScript 新手。我想将 Json 数据存储在函数 getjsonData 中。我创建了一个私有(private)函数retrieveJsonData,并通过getJsonData 传递它。但我无法在 onload 函数之外访问 json。
var DataController = (function(){
var retrieveJsonData = function(){
var api,ourRequest;
api = 'http://52.69.49.40/assignment/getServiceData.php';
ourRequest = new XMLHttpRequest();
ourRequest.open('GET',api);
ourRequest.onload = function(){
obj = JSON.parse(ourRequest.responseText);
getJsonData(obj);
}
ourRequest.send();
}
var getJsonData = function(object){
return object;
}
return{
AjaxObject:function(){
getJsonData();
console.log(getJsonData());
}
}
})();
最佳答案
您的 getJsonData
采用一个参数,并返回该参数的值。它是所谓的“恒等函数”,它绝对不执行任何操作。您可能想将该数据存储在某处,可以通过将函数替换为:
var data = undefined;
function getJsonData() {
if (arguments.length > 0) {
data = arguments[0];
}
return data;
}
不过,这并不是一个很好的函数,因为它并没有按照其声称的那样进行操作。它声称获取 JSON 数据,但它也存储它。
关于javascript - 当我控制台 getjson() 它返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49696446/