現在実行中の関数の名前を取得するという概念は、JavaScript を操作するプログラマーにとっての燃えるような質問です。風景。この記事では、この一見単純なタスクの可能性と実用性について詳しく説明します。
ES5 以降の制限
ES5 では、JavaScript は名前への直接アクセスを提供しなくなりました。ランニング機能の。この制限は、悪意のあるコードによるコール スタックの操作を防ぐための言語の試みから生じています。
古いバージョンの JavaScript での関数名へのアクセス
ES5 より前では、開発者は次のことを行うことができました。 argument.callee プロパティを利用して、呼び出し元の関数の名前を抽出します。ただし、このアプローチにはいくつかの欠点がありました。
関数名の解析
追加情報から関数名を取り除くために、一部の JavaScript 実装では argument.callee.name プロパティが提供されています。このメソッドが利用できない場合、開発者は次の解析手法を利用できます:
<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 で実行中の関数の名前を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。