Javascript类返回未定义

时间:2018-11-12 08:34:38

标签: javascript class oop

使用此代码时,该函数返回undefined而不是对象。

function Oauth_User_Profile() {
    this.username = "=";
    this.password = "=";
    this.refresh_token = "=";
    this.access_token = "=";
    this.request = function(url, formData, method, then) {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
            if(xhttp.readyState == 4 && xhttp.status == 200)
            {
                var j = JSON.parse(this.responseText);
                then(j);
            }
        }
        xhttp.open(method, url); 
        xhttp.send(JSON.stringify(formData)); 
    }
}

var oauth_user_profile = Oauth_User_Profile();
oauth_user_profile.username = "sample";

对于其他类,我有几乎相同的代码,它们工作正常,所以我不知道为什么它不能正常运行

重复: 该问题被标记为[How do I return the response from an asynchronous call?的重复项。但是,我不想返回调用结果,我想返回一个包含用户名,密码,refresh_token ...和可以运行的方法的对象。删除异步部分时,我遇到了完全相同的问题:

function Oauth_User_Profile() {
 this.username = "=";
 this.password = "=";
 this.refresh_token = "=";
 this.access_token = "=";
}

这仍然给出错误:未捕获的TypeError:无法设置未定义的属性“用户名”     在testm.html:67

1 个答案:

答案 0 :(得分:1)

您缺少new关键字:

var oauth_user_profile = new Oauth_User_Profile();