Heim  >  Artikel  >  Web-Frontend  >  Wie erhalte ich dynamisch den Namen der aktuellen Funktion in JavaScript?

Wie erhalte ich dynamisch den Namen der aktuellen Funktion in JavaScript?

Susan Sarandon
Susan SarandonOriginal
2024-10-21 15:27:30557Durchsuche

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

Erhalten des Namens der aktuellen Funktion in JavaScript

Können Sie dynamisch auf den Namen der aktuell ausgeführten Funktion in JavaScript zugreifen?

Problembeschreibung

Betrachten Sie das folgende Beispiel:

<code class="javascript">myfile.js:

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

Das Ziel besteht darin, den Namen der Funktion und möglicherweise ihren vollständigen Speicherort (Dateiname:Funktionsname) abzurufen ). Ist das erreichbar?

Lösung

In ES5 und höher: Leider gibt es in ES5 keinen integrierten Mechanismus, um den Namen der Funktion zu erhalten und nachfolgende Versionen.

In älteren JavaScript-Versionen: In früheren Versionen von JavaScript war es möglich, über arguments.callee auf den Funktionsnamen zuzugreifen. Dieser Ansatz erfordert jedoch möglicherweise etwas Parsing, da der zurückgegebene Wert möglicherweise überflüssige Informationen enthält.

Parsing-Ansatz:

<code class="javascript">function DisplayMyName() {
    var myName = arguments.callee.toString();
    myName = myName.substr('function '.length);
    myName = myName.substr(0, myName.indexOf('('));

    alert(myName);
}</code>

Quelle: [ Javascript – aktuellen Funktionsnamen abrufen](https://stackoverflow.com/questions/4267180/javascript-get-current-function-name)

Das obige ist der detaillierte Inhalt vonWie erhalte ich dynamisch den Namen der aktuellen Funktion in JavaScript?. 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