2012-07-11 38 views

答えて

3

Chrome DevTools内で、変数のスコープ/コンテキスト内にある特定の行にブレークポイントを設定できます。ブラウザの実行がブレークポイントに達すると、そのスコープ内のすべての変数/関数とグローバルスコープにアクセスできます。

また、Chromeのコンソールを利用して、現在のスコープ内でアクセス可能な変数を出力することもできます。クロームデベロッパーツールの詳細については訪問:

コンソールでの手動

https://developers.google.com/chrome-developer-tools/

+1

おかげで、私は設定しませんでした関数内にブレークポイントが存在するため、変数のスコープにアクセスできます。その変数を値 "Fred"で検索するにはどうしたらいいですか?この関数には100個のローカル変数があります。 – dangerChihuahua007

+0

は各変数にカーソルを置くと、割り当てられた値がポップアップ表示されます。 – xandercoded

+0

Chromeの最新バージョンをお持ちの場合は、実際にEclipseデバッガからアクセスできます。http://code.google.com/p/chromedevtools/wiki/Release_0_3_6#Function_Scope_and_Primitve_Values Chrome搭載ブラウザの開発者ツールはすぐにこれに追いつくはずです特徴。 – beefeather

0

この方法を:

console.log(this); 

ORに相当します

console.log({set x(){}}); 

console.log(Object.defineProperty({},'x',{get: function(){}})); 
コンソールで

は、ルックアップ:

get x: function(){} - ><function scope> - >Global: Window

7

をあなたが開発者ツールドン」として、あなたが実際に検索を実行できるように、コンソールにスクリプトを追加する必要がありますデフォルトでこれを許可します。

function scanScope(whatToScan, scanValue) { 
 
\t for (var key in whatToScan) { 
 
\t \t if (whatToScan[key] == scanValue) { 
 
\t \t \t console.log(key + ' = ' + whatToScan[key]); \t \t 
 
\t \t } else { 
 
\t \t \t if((typeof whatToScan[key] === "object") && (key !== null)) { 
 
\t \t \t \t scanScope(whatToScan[key], scanValue); 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
}

コピーしてコンソールにそれを貼り付け、その後、あなたが検索したい範囲でそれを呼び出します。ここではあなたのために、その関数は、(を更新については、以下の私の要旨のコメントを参照してください)ですあなたが検索したい値ともちろん、大きすぎるオブジェクトは検索しないように注意してください。あなたは、例えば、角度でプログラミング、そして「常にドットを持っている」ルールを以下の場合は、あなたのようなコールでそれをスキャンすることができます

scanScope($scope.model, 'Fred');

+3

ちなみに私はこのスクリプトの拡張版を作っています(私はそれを好きなので、自分で使います)。そして、それを要点として投稿しました:https://gist.github.com/DorkForce/34eb9a1ebf14cc5b0ba7 –