Javascript 如何以正确的方式返回对象值

Javascript 如何以正确的方式返回对象值,javascript,object,return,Javascript,Object,Return,我试图返回一个全局变量并在数组中设置一个对象 有人能解释一下我检索全局变量outPutArray的错误吗?当我试图返回它时,它变得未定义 var outPutArray={}; var goAjax=函数(数据、文件路径){ data=$(this.serialize()+“&”+$.param(data); $.ajax({ 类型:“POST”, 数据类型:“json”, url:filePath,//response.php文件的相对或绝对路径 数据:数据, 成功:功能(数据){ 对于(数

我试图返回一个全局变量并在数组中设置一个对象

有人能解释一下我检索全局变量outPutArray的错误吗?当我试图返回它时,它变得未定义

var outPutArray={};
var goAjax=函数(数据、文件路径){
data=$(this.serialize()+“&”+$.param(data);
$.ajax({
类型:“POST”,
数据类型:“json”,
url:filePath,//response.php文件的相对或绝对路径
数据:数据,
成功:功能(数据){
对于(数据中的x){
输出阵列[x]=数据[x];
}
//记录所需的值
log('inside'+outPutArray['json']);
}
});
};
goAjax.prototype.getValue=function(){
log('outside'+outPutArray['json']);
//日志未定义??

};由于AJAX是异步的,所以当您尝试返回它时,它是未定义的

请参阅、和或谷歌“返回AJAX响应”或类似内容


归根结底,异步调用发生在正常事件循环和执行之外,因此当您使用异步响应设置全局变量时,JavaScript无法“知道”当它到达那里。

首先,我要感谢每一位试图帮助我的人。答案是使用一个参数,该参数将在java中用作接口,在另一个函数中启动一个函数,或者在另一个方法中启动一个方法

/**
*这是一个javascript的构造器,用于启动服务器端PHP脚本。
* 
*@param{Object}filePath PHP文件路径
*/
var AjsToPHP=函数(文件路径){
this.filePath=filePath;
};
/**
* 
*启动服务器端PHP脚本并返回响应作为数组。
*@param{Object}data作为POST命令输入要转到的对象数组。
*@param{Object}response返回respond值的接口函数。
*/
AjsToPHP.prototype.PHP\进程\返回=函数(数据、响应){
var PHP_返回={};
data=$(this.serialize()+“&”+$.param(data);
$.ajax({
类型:“POST”,
数据类型:“json”,
url:this.filePath,//response.php文件的相对或绝对路径
数据:数据,
成功:功能(数据){
对于(数据中的x){
PHP_返回[x]=数据[x];
}
响应(PHP_返回);
}
});
};
/**
* 
*启动服务器端PHP脚本并在成功时返回respond OK。
*@param{Object}data作为POST命令输入要转到的对象数组。
*@param{Object}response返回respond值的接口函数。
*/
AjsToPHP.prototype.PHP_进程=函数(数据、响应){
var PHP_RETURNS=“”;
data=$(this.serialize()+“&”+$.param(data);
$.ajax({
类型:“POST”,
数据类型:“json”,
url:this.filePath,//response.php文件的相对或绝对路径
数据:数据,
成功:函数(数据){
PHP_返回=“确定”;
响应(PHP_返回);
}
});
};
的可能重复您确定对象数据(及其replicateoutPutArray)具有名为“json”的属性吗?