web-dev-qa-db-ja.com

Googleでスコープ変数を検索するにはどうすればよいですかChrome Developer Tools?

私は、Google Chrome Developer Tools。

「Fred」という値を持つ関数のスコープ変数で変数を探しています。関数のスコープ内の変数からこの値を検索するにはどうすればよいですか?

18

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

Chromeのコンソールを利用して、現在のスコープ内でアクセス可能な変数を出力することもできます。 Chrome DevToolsの詳細情報:

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

4
xandercoded

開発者ツールではデフォルトで検索が許可されていないため、実際に検索を実行できるように、コンソールにスクリプトを追加する必要があります。これがあなたのための機能です(更新については以下の私の要点コメントを参照してください):

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

これをコピーしてコンソールに貼り付け、検索するスコープと検索する値を指定して呼び出します。 もちろん、大きすぎるオブジェクトを検索しないように注意してください。たとえば、Angularでプログラミングしていて、「常にドットがある」というルールに従っている場合は、スキャンすることができます次のような呼び出しで:

scanScope($scope.model, 'Fred');
9
Dan Overlander

手動でこのようにコンソールで:

_console.log(this);
_

OR

_console.log({set x(){}});
_

これは次と同等です:

_console.log(Object.defineProperty({},'x',{get: function(){}}));  
_

コンソールルックアップで:

get x: function (){}-> _<function scope>_-> _Global: Window_

0
user669677