JavaScript で現在の関数の名前を取得する
JavaScript で現在実行中の関数の名前に動的にアクセスできますか?
問題の説明
次の例を考えてみましょう:
<code class="javascript">myfile.js: function foo() { alert(<my-function-name>); // pops-up "foo" // or even better: "myfile.js : foo" }</code>
目的は、関数の名前と、場合によってはその完全な場所 (ファイル名:関数名) を取得することです。 )。これは実現可能ですか?
解決策
ES5 以降: 残念ながら、ES5 には関数の名前を取得するための組み込みメカニズムがありません。
古い JavaScript バージョン: JavaScript の以前のバージョンでは、arguments.callee を使用して関数名にアクセスできました。ただし、このアプローチでは、戻り値に無関係な情報が含まれる可能性があるため、ある程度の解析が必要になる場合があります。
解析アプローチ:
<code class="javascript">function DisplayMyName() { var myName = arguments.callee.toString(); myName = myName.substr('function '.length); myName = myName.substr(0, myName.indexOf('(')); alert(myName); }</code>
ソース: [ Javascript - 現在の関数名を取得](https://stackoverflow.com/questions/4267180/javascript-get-current-function-name)
以上がJavaScript で現在の関数の名前を動的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。