我为我创建的对象创建的方法有问题。其中一个方法需要回调另一个方法。问题是我无法将数据添加到调用该方法的对象中。它一直以未定义的形式返回。否则,当我将数据发送到控制台时,它是正确的。我怎样才能将数据返回到方法中?
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 时调用此函数没有问题。但是,我无法将数据添加到 followerBlog 对象。
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"
}
});
});
}