1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptで現在実行中の関数名を取得することはできますか?

2022-04-10 09:03:34

質問

このようなことは可能でしょうか。

myfile.js:
function foo() {
    alert(<my-function-name>);
    // pops-up "foo"
    // or even better: "myfile.js : foo"
}

DojoとjQueryのフレームワークがスタックに入っているので、どちらかで楽になるのであれば、そちらを利用することも可能です。

どのように解決するのですか?

ES5以上では、その情報にアクセスすることはできません。

旧バージョンのJSでは arguments.callee .

ただし、名前には余計なものが含まれている可能性があるので、パースする必要があるかもしれません。 しかし、いくつかの実装では、名前を単に arguments.callee.name .

パースする。

function DisplayMyName() 
{
   var myName = arguments.callee.toString();
   myName = myName.substr('function '.length);
   myName = myName.substr(0, myName.indexOf('('));

   alert(myName);
}

出典 Javascript - 現在の関数名を取得 .