作成されたオブジェクトに対して作成されたメソッドiveに問題があります。メソッドの1つには、別のメソッドへのコールバックが必要です。問題は、メソッドを呼び出したオブジェクトにデータを追加できないことです。未定義として戻ってきます。そうでなければ、私がデータをコンソールに送るとき、それは正しいです。データをメソッドに戻すにはどうすればよいですか?
var blogObject = new Object();
var following = [...];
//get posts from those blogs
blogObject.getPosts = function () {
var followersBlogArray = new Array();
for (var i = 0; i < this.following.length;i++){
var followersBlog = new Object();
// get construct blog url
var complete_blog_url = ...;
ここでgetAvatar関数を呼び出して、現在のユーザーを次の配列に送信します。
followersBlog.avatar = blogObject.getAvatar(this.following[i]);
その部分はスムーズに進みます
followersBlogArray.push(followersBlog);
}
this.followersBlogArray = followersBlogArray;
}
これは、次の配列で現在のユーザーとともに呼び出される関数です。この関数はajax関数を呼び出します
blogObject.getAvatar = function (data) {
console.log("get avatar");
var url = "..."
このajax関数はその機能を果たし、showAvatarのコールバック関数を持っています
$(function() {
$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: url,
data: {
jsonp:"blogObject.showAvatar"
}
});
});
}
getAvatarが呼び出されても、この関数は問題なく呼び出されます。ただし、followersBlogオブジェクトにデータを追加することはできません。
blogObject.showAvatar = function (avatar) {
return avatar
}
ここにあるものはすべて正常に機能しますが、showAvatar関数をfollowersBlogオブジェクトに追加することはできません。私はもう試した
blogObject.showAvatar = function (avatar) {
this.followersBlog.avatar = avatar;
return avatar
}
もちろん、それはうまくいきませんでした。未定義として表示されます。誰か助けてもらえますか?
だから...
$(function() {
$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: url,
complete: function () {
this.avatar = data;
}
data: {
jsonp:"blogObject.showAvatar"
}
});
});
}