Für jede Funktion ist eine caller
-Eigenschaft definiert.
Von https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/caller:
function myFunc() {
if (myFunc.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + myFunc.caller);
}
}
Die Function.caller
Eigenschaft ist nicht Teil des ECMA3 Standard, aber es ist in allen gängigen Browsern, einschließlich Internet Explorer und Firefox implementiert.
Wenn Sie eine anonyme Funktion verwenden, können Sie immer noch Zugriff auf das caller
Eigenschaft über die arguments.calee
Eigenschaft:
function() {
if (arguments.callee.caller == null) {
return ("The function was called from the top!");
} else
return ("This function's caller was " + arguments.callee.caller);
}
}
Beachten Sie, dass dieser Code die aktuelle Funktion zugreift, und Referenzierung dann die gleiche Nicht-Standard caller
Eigentum darauf. Dies unterscheidet sich von der Verwendung der veraltetenarguments.caller
Eigenschaft direkt, die nicht implementiert in einigen modernen Browsern ist.
Beachten Sie, dass "Caller" eine nicht standardmäßige Eigenschaft ist. Ihr Kilometerstand kann von Browser zu Browser variieren. –
Wird das auch in IE funktionieren? –
Nicht Standard-Eigenschaft in der Tat, aber gibt es etwas ähnliches in IE? Es sollte nur in IE für meinen Client funktionieren, Firefox wird nicht unterstützt. –