JavaScript对象:属性集但在访问时返回undefined

时间:2011-02-02 00:43:13

标签: javascript

问候,

我正在使用一个定义如下的JavaScript对象:

var ytVideoData = new Object();

然后我在jQuery .ajax()中为它赋值:

$.ajax({
    type: "GET",
    url: "xmlproxy.php?url="+ytId+"&mode=native",
    success: function(data) {

        ytVideoData.thumbnail = $(data).find("media\\:thumbnail[yt\\:name='default']").attr("url"); // default thumbnail image
    }
});

在另一个函数中,我想访问我刚刚设置的缩略图属性。但是,当我这样做时:

function addPlaylistItem(tumblrUser, videoData) {
    console.log(videoData.thumbnail);
}

我进入控制台的所有内容都是“未定义”。当我这样做时:

console.log(videoData);

我将整个对象记录到控制台,并且可以看到正确设置在对象内部的缩略图属性,如下所示:

http://mp3.deceast.com/js-objectissue.jpg

在尝试了几种不同的方法后,我似乎无法让它发挥作用。如何访问此对象属性?

1 个答案:

答案 0 :(得分:0)

通过ajax进行的回调是异步的。这意味着你无法确定何时运行成功函数。

可能发生的订单是

$.ajax
addPlaylistItem // undefined
success // defined

尝试在成功回发中调用该函数

success: function(data) {
    ytVideoData.thumbnail = $(data).find("media\\:thumbnail[yt\\:name='default']").attr("url"); // default thumbnail image
    addPlaylistItem(getTumblrUser(), ytVideoData);
}