ChromeのDeveloper Toolsは揺るがないが、彼らが持っていないように見える(私が見つけることができる)ことの1つは、JavaScript関数の定義を見つける方法です。私は多くの外部JSファイルを含むサイトで作業しているので、これは私にとって非常に便利でしょう。確かにgrepはこれを解決しますが、ブラウザではずっと良いでしょう。つまり、ブラウザはこれを知っている必要があります。私が期待していたのはこんな感じでした。
まず第一に、この機能は存在し、私はそれを見逃していますか?
そうでなければ、私はこれがWebKitから来るのではないかと思いますが、 開発者ツールの機能要求 または WebKitのBugzilla には何も見つかりませんでした。
foo
という名前の関数を探しているとしましょう。
foo\s*=\s*function
を検索します(これら3つのトークンの間に任意の数のスペースを入れてfoo = function
を検索します)。関数定義のもう1つの変形は、function\s*foo\s*\(
に対してfunction foo(
で、これら3つのトークンの間には任意の数のスペースがあります。
これ 2012-08-26にChromeに上陸した 正確なバージョンについてはよくわからない、私はChrome 24でそれに気付いた。
スクリーンショットは100万語の価値があります。
コンソールのメソッドでオブジェクトを調べています。 [関数定義を表示]をクリックすると、ソースコード内で関数が定義されている場所に移動します。あるいは、function () {
という単語の上にカーソルを置くと、ツールチップに関数の本文が表示されます。このようにプロトタイプチェーン全体を簡単に調べることができます。 CDTは間違いなくロック!
みんなが役に立つことを願っています!
あなたはそのようにコンソールでそれの名前を評価することによって関数を印刷することができます
> unknownFunc
function unknownFunc(unknown) {
alert('unknown seems to be ' + unknown);
}
これは組み込み関数では動作しません。それらはソースコードの代わりに[native code]
のみを表示します。
EDIT:これは、関数が現在のスコープ内で定義されていることを意味します。
2016 Update:Chromeバージョン51.0.2704.103で
Go to member
ショートカットがあります(settings > shortcut > Text Editor
にリストされています)。関数を含むファイル(DevToolsのsources
パネル内)を開き、以下を押します。
ctrl + shift + O
またはOS Xの場合:
⌘ + shift + O
これにより、現在のファイルのメンバーを一覧表示して到達することができます。
関数定義の場所に移動するもう1つの方法は、デバッガでどこかにアクセスしてコンソールに関数にアクセスし、その関数の完全修飾名を入力することです。これにより、コンソールに関数定義が印刷され、クリックするとその関数が定義されているスクリプトの場所を開くリンクが表示されます。
ブラウザが異なれば、その方法も異なります。
ページを右クリックして[Inspect Element]を選択するか、またはを押して、コンソールウィンドウを最初に開きます。 F12。
コンソールで、...と入力します。
Firefox
functionName.toSource()
クロム
functionName
グローバル関数を見つける最も簡単な方法は、次のとおりです。
chromeコンソールの場合:
debug(MyFunction)
MyFunction()