Wie bekomme ich den Namen einer aufrufenden Funktion in Javascript?
Betrachten Sie das folgende Beispiel.
var obj = function(){};
function apply(target, obj) {
if (target && obj && typeof obj == "object") {
for (var prop in obj) {
target[prop] = obj[prop];
}
}
return target;
}
apply(obj.prototype, {
firstFunction: function (){
this.secondFunction();
},
secondFunction: function (){
// how do I know what function called me here?
console.log("Callee Name: '" + arguments.callee.name + "'");
console.log("Caller Name: '" + arguments.callee.caller.name + "'");
}
});
var instance = new obj();
instance.firstFunction();
AKTUALISIEREN
Beide Antworten sind wirklich großartig. Vielen Dank. Ich habe mich dann mit dem Problem des Aufrufs einer rekursiven oder übergeordneten Funktion innerhalb eines Objekts befasst und hier eine Lösung gefunden. Auf diese Weise könnte ich den Funktionsnamen abrufen, ohne die Eigenschaften arguments.callee / caller zu verwenden.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/function