• ベストアンサー

関数を呼び出している関数名を知る方法

いつもお世話になります。 Javascriptで、関数を呼び出してる関数名を知る方法はありませんか。 デバッグをしていてある関数が、どの関数から呼び出されているのかわからなくなってしまうときに alert(***);で現在デバッグしている関数が呼び出されている関数名がわからないものかと思いまして質問させていただきました。 どうかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.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>

rqg2010
質問者

お礼

fujillinさんおはようございます。 ご丁寧なレスありがとうございます。 大変参考になりました。 arguments.callee.caller; なんてのがあるんですね。 どうもありがとうございました。

その他の回答 (1)

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

 alertでやっていると、難しいかも。例外を投げて、スタックトレースをはき出させれば、可能と思いますが・・・  効率的なのは、ツールを使うことかな。  開発環境にデバッガーがあれば、大概の場合、呼び出し履歴を表示するためのウィンドウがどこかにあるはずです。これを使えば一目瞭然です。気の利いたものであれば、呼び出し元の表示をダブルクリックなりするだけで、呼び出し行をあっという間に表示してくれるでしょう。  任意のポイントで実行を一時停止して、その時の変数の状態などすべて確認することが出来ますから、とっても効率はあがります。

rqg2010
質問者

お礼

mitonekoさん早速レスありがとうございます。 >alertでやっていると、難しいかも そうですか。 デバッグツールをググってみました。 あまり多くはないようですが、これらを調べてみます。 お奨めなものがあったら是非紹介していただきたいです。 どうもありがとうございました。

関連するQ&A