ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で現在の関数の名前を動的に取得する方法

JavaScript で現在の関数の名前を動的に取得する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-21 15:27:30557ブラウズ

How to Dynamically Get the Name of the Current Function in JavaScript?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。