2016-04-26 10 views
0

これは初めての私はjavascriptを見ているので、新人の質問をお許しください。Javascript:関数のコードを見つける

私は関心のあるウェブサイト上の特定の機能のコードを読もうとしています。私はウェブサイトのために何も書いていないので、一般的な構造について実際にコメントすることはできません。これはリバースエンジニアリングとほとんど同じです。それは、(JS/main.jsに)呼ばれていますここで、次のようになります。私は、これがてfuncAを呼び出して、ファイル/クラスまたは任意のそのcomesfのROM ID検索から言っている理解して何から

$(document).ready(function() { 
    $('#search').funcA(); 

。私の質問は:#searchで呼び出されたファイルをどのように見えるのですか?

+0

'$'は関数です。関数 '$'は引数 '#search 'で呼び出されます。 '$'を関数として使うJavaScriptライブラリがいくつかありますが、あなたのコードを与えれば、ライブラリが 'jQuery'であると強く思っています。 Googleの 'jQuery'必要に応じてソースを読むことができますが、ほとんどの人はjQueryのドキュメントを読んでいるだけです。ソースはかなり複雑です。 – slebetman

+0

また、一般的にjavascriptにはファイルごとのモジュールの概念はありません(node.jsを除く)。どのファイルから何が来るのかは、誰が関数やオブジェクトを書いたかによります。 '

0

funcAは、jQueryメソッドとして定義されているようです。お試しください

console.log($.fn.funcA) 
0

このコードを含むページを表示している同じブラウザのウィンドウ(私はクロムを使用しました)でjavascriptコンソールを開きます。次に、次の行を実行します。

> $('#search').funcA 

funcAの本文が表示されます。ランダム出力例私は$( "#のmyownid")をやったショー:

機能てfuncA(A、B、C){VARのD、E;(|| === 0)場合は、 を返します。 this.animate(CU( "ショー"、3)、A、B、C);(VAR G = 0、H = this.lengthため、グラム ...

あなたが見て管理している場合関数の本体を推測することができます(またはここに投稿すると、さらにあなたを指すことができるはずです)

0

ここでの提案はFunction.prototype.toString(いくつかのブラウザではコンソールマジックの一部)がありますが、代わりにdebuggerを使用します。 Chromeにはこのようなもののデバッグツールが用意されており、debugger statementは簡単にそこにアクセスできます。

var test = $('#search').funcA; 
debugger; 

コンソールを開いて調査を開始します。あなたのコードの実行がそのブレークポイントにヒットすると、次のような便利なツールが表示されます。この

enter image description here

右クリックtestをも、あなたが表示されます「Show関数の定義」するオプションが与えなければなりませんこの関数は実際にソースコードとして定義されていました。

さらに調査したい場合は、いつでも同様のブレークポイントright from the Chrome dev consoleを設定することができます。

+0

他のブラウザにも同様のツールがある可能性が高いですが、Chromeでの経験が豊富なので、その中でデバッグツールをお勧めします。 – noppa

0

ショートバージョン:コンソールを開き、$( "#search")を実行すると、idがsearchであるdomノードを含むjqueryオブジェクトが返されます。

ロングバージョン:

$( "何か") はjQueryオブジェクトを返すCSSセレクタによって選択要素のためのjQuery(ジャバスクリプトライブラリ)です。 https://learn.jquery.com/using-jquery-core/selecting-elements/

$(ドキュメント).ready(関数(){ は私が実行して、この匿名関数をマックするための私の文書(基本的にページが)準備ができたときのためのjQueryのです。 https://learn.jquery.com/using-jquery-core/document-ready/

$(」 funcA();)funcA(); 要素のセットを選択します。この場合、idが "search"の単一の要素を選択し、その要素をスコープとして使用してfuncAを実行します。 IDが "search"で、検索ノードが特別なスコープ変数の値である(スコープはキーワード "this"を介して参照されますが、複雑になる可能性があります)

本質的にあなたの見ているものは: 私のドキュメントが準備ができたら、検索要素を見つけ、その上に関数funcAを実行します。

関連する問題