- ベストアンサー
関数を呼び出している関数名を知る方法
いつもお世話になります。 Javascriptで、関数を呼び出してる関数名を知る方法はありませんか。 デバッグをしていてある関数が、どの関数から呼び出されているのかわからなくなってしまうときに alert(***);で現在デバッグしている関数が呼び出されている関数名がわからないものかと思いまして質問させていただきました。 どうかよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
簡単なデバッグ程度になら使えるかも… <html> <head><title>test</title> <script type="text/javascript"> function test1() { test(1); } function test2() { test(2); } function test3() { test(3); } function test(n) { var fnc = arguments.callee.caller; alert('No=' + n + '\ncaller=' + fnc); } </script> </head> <body> <button type="button" onclick="test1()">test1</button> <p> <button type="button" onclick="test2()">test2</button> <p> <button type="button" onclick="test3()">test3</button> </body> </html>
その他の回答 (1)
- mitoneko
- ベストアンサー率58% (469/798)
alertでやっていると、難しいかも。例外を投げて、スタックトレースをはき出させれば、可能と思いますが・・・ 効率的なのは、ツールを使うことかな。 開発環境にデバッガーがあれば、大概の場合、呼び出し履歴を表示するためのウィンドウがどこかにあるはずです。これを使えば一目瞭然です。気の利いたものであれば、呼び出し元の表示をダブルクリックなりするだけで、呼び出し行をあっという間に表示してくれるでしょう。 任意のポイントで実行を一時停止して、その時の変数の状態などすべて確認することが出来ますから、とっても効率はあがります。
お礼
mitonekoさん早速レスありがとうございます。 >alertでやっていると、難しいかも そうですか。 デバッグツールをググってみました。 あまり多くはないようですが、これらを調べてみます。 お奨めなものがあったら是非紹介していただきたいです。 どうもありがとうございました。
お礼
fujillinさんおはようございます。 ご丁寧なレスありがとうございます。 大変参考になりました。 arguments.callee.caller; なんてのがあるんですね。 どうもありがとうございました。