次のオブジェクトを定義しました。
var WealthyLaughingDuckControl = {
initialised: false,
users: [],
fetchData: function() {
$.ajax({
type: "GET",
dataType: "json",
url: "../php/client/json.php",
data: {
type: "users"
}
}).done(function(response) {
this.initialised = true;
this.users = response;
});
},
init: function() {
if (!this.initialised) {
this.fetchData();
}
},
getData: function() {
return this.users;
}
};
ブラウザの JavaScript コンソールでこのオブジェクトをデバッグしています。オブジェクトの状態は、実行の前後で同じWealthyLaughingDuckControl.init()
です。
Object {initialised: false, users: Array[0], fetchData: function, init: function, getData: function}
ただし、次を実行すると、ajax 応答が正しく機能することは確かです。
$.ajax({
type: "GET",
dataType: "json",
url: "../php/client/json.php",
data: {
type: "users"
}
}).done(function(response) {
alert(response);
});
ブラウザは私に警告し[Object object]
ます。したがって、オブジェクトがオブジェクトの応答値を持ちinitialised=true
、それに設定することを期待しています。users
上記のコードで何が間違っていますか?