3

このようなコードブロックがあるとしましょう...

$(function(){
    var Foo = "Thing";
    var Bar = "Other Thing";
    var Bag = new Widget({name: "Some Thing", color: "Purple"});
});

Chrome コンソールでこれらの変数/オブジェクトを検査または取得する方法はありますか? 私はおそらく Chrome コンソールを REPL のように使いすぎていると思いますが、それが可能かどうか興味があります。

--編集: 申し訳ありませんが、もっと情報を含める必要がありました。ブレークポイントを追加したり、デバッガー呼び出しを含めたりできることはわかっています。すべてが完了したに変数/オブジェクトを見ることにもっと興味があります。

4

2 に答える 2

1

変数は関数にスコープされます。つまり、明示的に渡されない限り、変数の外部にアクセスすることはできません。ここに私が考えることができるいくつかのオプションがあります:

  1. などの外部スコープで同じ名前の変数を宣言できますwindow。これらの変数名が他の関数で使用されている場合、それらはすべて同じ「グローバル」コピーを使用し、すべてが壊れる可能性があるため、注意してください。

  2. 無名関数の最終的な戻り値の直前に「変数コレクター」ステートメントを追加できます。

    var collector = [];
    
    $(function () {
       var Foo = "Thing",
          Bar = "Other Thing",
          Bag = new Widget({name: "Some Thing", color: "Purple"});
       collector.push({"anonymousfunction1": {Foo: Foo, Bar: Bar, Bag: Bag}});
       return something;
    });
    

    次に、実行の最後に、collector変数内のすべてを好きなだけ調べることができます。collector知りたい無名関数が複数あるかもしれない、または関数が複数回呼び出される可能性があると考えたので、配列を作成しました (私には jQueryreadyイベントのように見えますが、わかりません)。

  3. 値をコンソールに記録するだけです。これは Chrome と Firefox (F12 キーを押す) で機能し、IE の以降のバージョンでも機能する可能性があります。

    $(function () {
       var Foo = "Thing",
          Bar = "Other Thing",
          Bag = new Widget({name: "Some Thing", color: "Purple"});
       console.log("Foo", Foo, "Bar", Bar, "Bag", Bag);
       return something;
    });
    
于 2013-04-04T19:50:39.340 に答える