在父函数之外使用数组

时间:2013-01-30 18:35:10

标签: javascript

将此功能作为回调触发

 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(测试) 在函数内..

2 个答案:

答案 0 :(得分:0)

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

如果在您尝试的位置无法访问这些值,可能是因为该函数在回调加载“testing”中的值之前执行。

答案 1 :(得分:0)

如前所述,testing是全局范围,因此您可以在任何地方使用它。因此,使用testing确保函数的正确执行顺序非常重要。

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

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

在你的情况下,这样的函数看起来像这样:

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

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