2

次のようなものをすばやく追加する方法が欲しいのですが

console.log(functionName)

すべての関数の先頭に。

これを行うための迅速で簡単な方法はありますか、それともすべての関数にそのコードを手動で追加する必要がありますか?

4

3 に答える 3

4

あなたはこのようなことを試すことができます:

for( var x in window) {
    if( typeof window[x] == "function") {
        (function(x) {
            var ox = window[x];
            window[x] = function() {
                console.log(x);
                ox.apply(null,arguments);
            };
        })(x);
    }
}

ただし、これはグローバル関数でのみ機能し、オブジェクトの関数やスコープ関数では機能しません。これは一種の核兵器でもあるため、呼び出したい特定の関数にコンソールログを手動で追加する代わりにはなりません。

代わりに、(ブラウザーの開発者ツールを使用して)コードにブレークポイントを挿入し、その時点で呼び出しスタックを確認する方がおそらく良いでしょう。

于 2012-06-03T14:32:48.670 に答える
0

JavaScriptは関数の内容の実行時の変更をサポートしていないため、これは不可能です。

ただし、スクリプトのバックアップを作成し、検索と置換を実行して、編集部分の時間を節約することはできます。最新のエディターは、基本的な正規表現をサポートしています。

于 2012-06-03T14:31:22.993 に答える
0

Frame.jsのようなフロー制御ライブラリを使用する場合は、アプリケーションの最も重要な機能に低レベルでアクセスできます。もちろん、最初からFrameを使用してアプリケーションを構築する必要があります。すでにビルドされているアプリケーションを変更しようとしている場合、これは機能しません。

于 2012-06-03T14:36:01.377 に答える