JavaScript/AJAX-在onreadystatechange中返回对象(未定义错误)

JavaScript/AJAX-在onreadystatechange中返回对象(未定义错误),javascript,ajax,Javascript,Ajax,我试图在发出AJAX请求时在onreadtstatechange函数中返回一个对象。我将返回的对象分配给一个变量,但当我尝试访问该变量时,会出现以下错误(在尝试使用对象的description属性后): 未捕获的TypeError:无法读取未定义的属性“说明” 以下是我正在做的: var myApp = function() { var obj1 = function() { return { something:function() { v

我试图在发出AJAX请求时在onreadtstatechange函数中返回一个对象。我将返回的对象分配给一个变量,但当我尝试访问该变量时,会出现以下错误(在尝试使用对象的description属性后):

未捕获的TypeError:无法读取未定义的属性“说明”

以下是我正在做的:

var myApp = function() {

 var obj1 = function() {
    return {
        something:function() {

            var xmlhttp;

            xmlhttp=new XMLHttpRequest();
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    return {
                        status:xmlhttp.status,
                        description:xmlhttp.responseText
                    }
                }
              }
            xmlhttp.open("GET","http://something",true);
            xmlhttp.send();

        }
    }
 }();

 var obj2 = function() {
    return {
        something2:function() {
            var something = obj1.something();
            console.log("Description: "+something.description + ", Status: "+something.status);
        }
    }
 }();

}();

有什么建议吗?

(第二个答案是为无库Ajax编辑的)jonathan发布的链接确实将它总结为一个变量
var data=xmlhttp.responseText
,然后解析它
JSON.parse(data)
谢谢jonathan,我将尝试按照答案的说明将回调传递给函数。唯一的问题是我的函数有6种不同的状态,所以我必须通过这6种函数,我有一个问题。在我发布的示例中,如何从函数something2引用xmlhttp?我想在something2中构建函数,并将其传递给某个对象,但我不确定如何从something2引用xmlhttp.status