私はこの関数を、呼び出しの親呼び出し元と呼び出し元に渡された引数とともに、本当にひどくトレースする必要があるオブジェクトに持っています。
これは縮小されるまでうまく機能します:
var foo = {
FunctionToBeLogged: function GiveMeAName() {
console.log('> %s called from %s - args: %o',
arguments.callee.name,
arguments.callee.caller.name,
arguments.callee.caller.arguments);
}
}
var bar = {
A: function A(something) {
foo.FunctionToBeLogged('nothing', 12, true);
},
B: function B(whatever, doesntMatter) {
foo.FunctionToBeLogged('nothing', 12, true);
}
}
bar.A(1.2, 'Fred', { }); // > GiveMeAName called from A - args: [1.2, "Fred", Object]
bar.B('Barney', 42, false); // > GiveMeAName called from B - args: ["Barney", 42, false]
縮小によりこれらの名前が削除され、出力は次のようになります。
bar.A(1.2, 'Fred', { }); // > called from - args: [1.2, "Fred", Object]
bar.B('Barney', 42, false); // > called from - args: ["Barney", 42, false]
関数の宣言と代入を作成したくありません。それらが大量にあるからです (このコードを 7,564 で継承しました...そして、関数式に名前を付ける正規表現サブルーチンを簡単に実行できます)。
ミニファイヤがこれらの関数名を削除しないようにするにはどうすればよいですか?