0

将此函数作为回调触发

 var testing  = []; 
 var vid;

function showMyVideos(data){

        var feed = data.feed; //object "feed"
        var entries = feed.entry || [];   //array "entry"
        var html = ['<ul>'];
        for (var i = 0; i < entries.length; i++){
            entry = entries[i];
            playCount = entry.yt$statistics.viewCount.valueOf() + ' views';
            title = entry.title.$t;

            vid = (getVideoId(entry.link[0].href));
            testing[i] = vid;
            lnk = '<a href = \'' + entry.link[0].href + '\'>link</a>';
            html.push('<li>', title, ', ', playCount, ', ', vid, ', ', lnk, '</li>');

        }
        html.push('</ul>');
        $('#videoResultsDiv').html(html.join(''));


     }

我想在其他函数上使用“测试”数组,我该怎么做?.. 我现在很沮丧,抱歉我刚刚开始欣赏 JavaScript。我想完美地访问数组数据,就像我在函数内部的 console.log(testing) 上做的那样。

4

2 回答 2

0

“测试”在全局范围内,只要在另一个范围内没有另一个具有相同名称的变量覆盖全局“测试”,它就应该可以在任何地方访问。

如果在您尝试它的地方无法访问这些值,则可能是因为该函数在回调加载“测试”中的值之前被执行。

于 2013-01-30T18:53:25.193 回答
0

正如已经提到testing的是全局范围,所以你可以在任何地方使用它。因此,使用testing.

有些人可能不赞成在 javascript 中使用全局范围,但有一些方法可以缓解问题。

通常,当我必须实现全局范围变量时,我会创建一个类似于“clear_session”或“reset_globals”的方法。

在您的情况下,这样的函数如下所示:

function reset_globals(){
   testing  = []; 
   vid;
}

这很有用,因为您知道在调用之后您reset_globals()的变量将为空。

于 2013-01-30T18:58:54.007 回答