関数の呼び出しもと
関数の呼び出しもとを取得するのはarguments.callee.caller
正規表現は[]を使っても機能しなかった。
× replaced=replaced.replace(/{[.\n]*}/, '');
var test3=function()では無名関数を変数に代入することになるので、変数名は取得できないらしい。
サンプル
コード
<script type="text/javascript">
function test1(){
debug();
}
function test2(){
debug();
}
var test3=function(){
debug();
}
var test4=test1;
function debug(){
var caller=arguments.callee.caller;
var replaced=caller.toString();
replaced=replaced.replace(/{(.|\n)*}/, '');
// var reg=new RegExp('{(.|\n)*}','');
// replaced=replaced.replace(reg, '');
document.getElementById('output').innerHTML='<pre>caller:\n'+caller+'</pre>' +
'<pre>replaced:\n'+replaced+'</pre>';
}
</script>
<input type="button" value="test1" onclick="test1();">
<input type="button" value="test2" onclick="test2();">
<input type="button" value="test3" onclick="test3();">
<input type="button" value="test4" onclick="test4();">
<div id="output"></div>