Heim  >  Artikel  >  Web-Frontend  >  Wie ermittelt man die Details der Aufruffunktion in JavaScript?

Wie ermittelt man die Details der Aufruffunktion in JavaScript?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 21:53:02308Durchsuche

How to Determine the Details of the Caller Function in JavaScript?

Aufruffunktionsdetails in JavaScript ermitteln

Die Bestimmung des Ursprungs eines Funktionsaufrufs kann wertvolle Erkenntnisse für das Debuggen und die Analyse liefern. In diesem Artikel wird erläutert, wie Sie die Leitungsnummer und die Quell-URL der Anruferfunktion in JavaScript erhalten.

Abrufen der Leitungsnummer des Anrufers

Der bereitgestellte Code ruft effektiv den Namen von ab die Caller-Funktion mithilfe des Arguments.callee.caller-Objekts. Um die Zeilennummer zu erhalten, ist jedoch ein anderer Ansatz erforderlich. Eine Methode beinhaltet die Verwendung des Error-Objekts:

<code class="js">function getErrorObject() {
  try {
    throw Error('');
  } catch (err) {
    return err;
  }
}

var err = getErrorObject();
var caller_line = err.stack.split("\n")[4];
var index = caller_line.indexOf("at ");
var clean = caller_line.slice(index + 2, caller_line.length);</code>

Die Stack-Eigenschaft des Error-Objekts enthält einen Stack-Trace, der die Zeilennummern und Quell-URLs der Funktionsaufrufe enthält, die zum Fehler geführt haben. Durch Parsen dieser Zeichenfolge können Sie die Zeilennummer der Aufruferfunktion extrahieren.

Abrufen der Quell-URL des Aufrufers

Auf ähnliche Weise kann die Quell-URL aus dem Stapel abgerufen werden Eigenschaft des Error-Objekts:

<code class="js">var caller_url = err.stack.split("\n")[4];
var index = caller_url.indexOf("(");
var clean = caller_url.slice(index + 1, caller_url.length - 1);</code>

Der Teil des Stack-Trace zwischen den Klammern enthält die Quell-URL der aufrufenden Funktion.

Das obige ist der detaillierte Inhalt vonWie ermittelt man die Details der Aufruffunktion 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