We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Kein Standard
Diese Funktion entspricht nicht dem Standard und ist nicht Teil der Standardisierung. Diese Funktion darf nicht in Webseiten, die via das Internet zugänglich sind, benutzt werden: Sie wird nicht für alle Nutzer funktionieren. Es kann zu umfangreichen Inkompatibilitäten zwischen verschiedenen Implementierungen kommen und die Funktionsweise oder Eigenschaften könnten in der Zukunft verändert werden.

Die function.caller Eigenschaft gibt die Funktion zurück, die eine spezifizierte Funktion aufgerufen hat. Diese Eigenschaft ist im Strict-Modus wegen tail call Optimirungen verboten.

Beschreibung

Wenn die Funktion f durch einen Quelltext auf höchster ebene aufgerufen wird, ist der Wert von f.caller null, anderfalls die Funktion, die f aufgerufen hat.

Diese Eigenschaft ersetzt die veraltete Eigenschaft arguments.caller des arguments Objektes.

Die spezielle Eigenschaft __caller__, welches das Objekt des Aufrufers zurück gab, erlaubt es den Stack zu rekonstruieren und wurde aus Sicherheitsgründen entfernt.

Hinweise

Im fall von Rekursion, kann der Stack nicht mit dieser Eigenschaft reproduziert werden. Gegeben:

function f(n) { g(n - 1); }
function g(n) { if (n > 0) { f(n); } else { stop(); } }
f(2);

Im Moment ,indem stop() aufgerufen wird, ist der Aufruferstack:

f(2) -> g(1) -> f(1) -> g(0) -> stop()

Das folgende ergibt true:

stop.caller === g && f.caller === g && g.caller === f

Wenn man versucht den Stacktrace in der stop() Funktion zu bekommen, wie hier:

var f = stop;
var stack = 'Stack trace:';
while (f) {
  stack += '\n' + f.name;
  f = f.caller;
}

wird die Schleife nie beendet.

Beispiele

Prüfen des Wertes der Funktionseigenschaft caller

Der folgende Quelltext prüft den Wert der Funktionseigenschaft caller.

function myFunc() {
  if (myFunc.caller == null) {
    return 'The function was called from the top!';
  } else {
    return 'This function\'s caller was ' + myFunc.caller;
  }
}

Spezifikationen

In keiner Spezifikation enthalten. Implementiert in JavaScript 1.5.

Browserkompatibilität

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung Ja Ja18 Ja Ja
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Grundlegende Unterstützung Ja Ja Ja4 Ja Ja Ja

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: schlagi123
Zuletzt aktualisiert von: schlagi123,