Prostym sposobem Lubię używać jest arguments.callee.caller.name
.
Powiedzmy, że chciał wiedzieć, co było wywołanie funkcji o nazwie myFunction:
function myFunction() {
console.log(arguments.callee.caller.name);
/* Other stuff... */
}
Wsparcie przeglądarka za to nie jest wielki, choć, więc można użyć arguments.callee.caller.toString() zamiast. Zwróć uwagę, że w ten sposób otrzymasz zawartość funkcji o nazwie myFunction, więc musisz samodzielnie wydobyć nazwę funkcji.
Albo można użyć piękny funkcję śledzenia stosu tak:
function getStack(){
fnRE = /function\s*([\w\-$]+)?\s*\(/i;
var caller = arguments.callee.caller;
var stack = "Stack = ";
var fn;
while (caller){
fn = fnRE.test(caller.toString()) ? RegExp.$1 || "{?}" : "{?}";
stack += "-->"+fn;
caller = caller.arguments.callee.caller;
};
return stack;
}
ślad stosu poprzez http://www.amirharel.com/2010/01/25/using-caller-and-callee-for-stack-trace/
Pomoże: http://stackoverflow.com/questions/280389/how-to-you-find-out-the-caller-function-in-javascript – Sid
Jeszcze jeden link http://stackoverflow.com/questions/147891/javascript-exception-stack-trace –