Javascript Class возвращает неопределенный - PullRequest
0 голосов
/ 12 ноября 2018

При использовании этого кода функция возвращает неопределенный вместо объекта.

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";

У меня есть почти такой же код для других классов, который работает нормально, поэтому я не знаю, почему он работает неправильно

Дубликат: Вопрос был помечен как дубликат для [ Как мне вернуть ответ от асинхронного вызова? . Однако я не хочу возвращать результат вызова, я хочу вернуть объект, который содержит имя пользователя, пароль, refresh_token ... И метод, который можно запустить. Я сталкиваюсь с точно такой же проблемой при удалении асинхронной части:

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

Это по-прежнему выдает ошибку: Uncaught TypeError: Невозможно установить свойство 'username' из неопределенного at testm.html: 67

1 Ответ

0 голосов
/ 12 ноября 2018

Вам не хватает ключевого слова new:

var oauth_user_profile = new Oauth_User_Profile();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...