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(''));


     }

他の関数で「testing」配列を使用したいのですが、どうすればよいですか?.. 今はイライラしています。申し訳ありませんが、JavaScript に感謝し始めたばかりです。関数内で console.log(testing) を行っているときのように、配列データに完全にアクセスしたい..

4

2 に答える 2

0

「testing」はグローバルスコープにあり、グローバル「testing」をオーバーライドする同じ名前の別のスコープに別の変数がない限り、どこからでもアクセスできる必要があります。

試している場所で値にアクセスできない場合は、コールバックが「テスト」で値をロードする前にその関数が実行されている可能性があります。

于 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 に答える