1

これはなぜですか、これをグローバルに宣言している間、関数スコープ内でのみ機能します

testing = [];

function func1(){
  //some codes here that fills the "testing" array... 
}
//I want to display here the new array values.. 

JSFiddleで見る

  1. ボタンをクリック
  2. 出力の要素を検査し、
  3. コンソールで

    別の関数に「テスト」配列が必要です。じゃあどうやって使うの?

4

2 に答える 2

1

これが呼び出された、配列に値が設定されます。console.log("outside function scope :\n"+testing);

jsfiddle のすべての問題を無視すると、期待どおりの動作が見られない理由は、配列にデータが入力される原因となるイベントが非同期であり、スコープ外にそれを表示するコードがすぐに実行されるためです。

于 2013-01-31T23:03:41.773 に答える
1

メッセージがコンソールに表示される順序に注意してください。ページの読み込み時:

outside function scope :

ボタンをクリックした後:

inside function scope :
RSdKmX2BH7o,EWMLMc3ES3I,SIXwlxhjaKY,RIKTFn5ALE8,acp8TbBPVos,6GpKR4-TLoI,XLKLkTnKRwg,6WPELkw5kD0

関数スコープ外のコードは、ページが読み込まれるとすぐに実行されますが、入力中のコードはtestingボタンをクリックした後にのみ実行されます。

于 2013-01-31T23:04:09.307 に答える