Heim >Web-Frontend >js-Tutorial >Wie kann ich innerhalb der Funktion in JavaScript auf den Namen einer Funktion zugreifen?

Wie kann ich innerhalb der Funktion in JavaScript auf den Namen einer Funktion zugreifen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-28 12:50:30960Durchsuche

How Can I Access a Function's Name From Inside the Function in JavaScript?

Funktionsidentität von innen heraus entdecken

Die Herausforderung, auf Funktionsnamen aus der Funktion heraus zuzugreifen, tritt häufig in der Programmierung auf. Mit JavaScript gibt es mehrere Ansätze zur Lösung dieses Problems.

ES6: myFunction.name

In ES6 und späteren Versionen besteht die direkte Lösung darin, myFunction.name zu verwenden Eigentum. Dieses Attribut stellt den Namen der Funktion bereit und macht sie zu einer effizienten und unkomplizierten Methode.

ES5: Funktionsanalyse

Für ES5 gibt es eine benutzerdefinierte Funktion namens functionName(fun) kann erstellt werden, um den Namen aus der Zeichenfolgendarstellung der Funktion zu extrahieren. Es schneidet das Präfix „Funktion“ und die Klammern ab und liefert den gewünschten Funktionsnamen.

Regex-basierter Ansatz

Alternativ kann ein regulärer Ausdruck verwendet werden, um den zu erhalten Funktionsname. Die folgende regex-basierte Funktion von nus bietet eine verbesserte Leistung:

<code class="javascript">function funName(fun) {
  return fun.toString().match(/function ([^\(]+)[\s\S]*/)[1];
}</code>

Vorsichtsmaßnahmen und Überlegungen

Es ist wichtig zu beachten, dass Minifizierer möglicherweise Funktionsnamen für eine verbesserte Komprimierung optimieren . Wenn dies ein Problem darstellt, müssen Sie möglicherweise Ihre Minifier-Einstellungen anpassen. Darüber hinaus sollten Function.caller und arguments.callee vermieden werden, da sie nicht dem Standard entsprechen und im strikten Modus nicht empfohlen werden.

Das obige ist der detaillierte Inhalt vonWie kann ich innerhalb der Funktion in JavaScript auf den Namen einer Funktion zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn