0

特定の変数がいつ変更されたかを判断したい。このコードを使用して、アクセスできる任意のオブジェクトの任意のプロパティを監視することに成功しましたが、次のように宣言された変数に使用できますか?:

$(                  // line 1
  function(){       // line 2
    var A;          // line 3
    // ... lots of code that uses A as if it were a global. I wanna see what part of this code sets A ...
  }                 // line 5999
);                  // line 6000

確かAに のプロパティにはなりませんwindow。2 行目から 5999 行目までの無名関数オブジェクトのプロパティでしょうか? したがって、関数に名前を付けて参照できるようにするwatchと、Avar/prop で何らかの方法で使用できますか?

変数が設定される場所を把握するために利用できる他の方法は何ですか?

4

2 に答える 2

1

これは少しばかげているように思えるかもしれませんが、少し変更を加えるだけで、変数ポインターを監視できるようになります。

(function() {
    window.ox = x = {};

    x.y = 5;
})();

alert(ox.y);

これにより、グローバル領域に引き込まれ、グローバル変数 ox から変数 x を観察できるようになります。</p>

于 2012-11-21T16:43:44.463 に答える
0

Object.prototype.watchオブジェクトプロパティではなく変数であるという理由だけで、その変数を使用することはできません。その範囲に関係なく(これはあなたが言及した無名関数です)。

デバッグの目的でそれを行おうとしているのであれば、ブラウザの開発者ツールからそれを見ることができると思います。

于 2012-11-21T16:34:45.557 に答える