Ich versuche, den Namen der aktuell ausgeführten Funktion abzurufen. Nach dem, was ich gelesen habe, sollte dies mit möglich sein:
(arguments.callee.toString()).match(/function\s+(\[^\s\(]+)/)
Wenn ich dies jedoch in Firefox und Safari (neueste Versionen auf Mac) ausführe, wird der Name nicht zurückgegeben.
console.log( arguments.callee ) gibt die Quelle der Funktion zurück, aber nicht den zugewiesenen Namen. arguments.callee.name gibt eine leere Zeichenfolge zurück.
Mein Beispielcode lautet wie folgt:
var testobj = {
testfunc: function(){
console.log( (arguments.callee.toString()).match(/function\s+(\[^\s\(]+)/) );
}
}
testobj.testfunc();