Una forma sencilla me gusta usar es arguments.callee.caller.name
.
Diga lo que quería saber lo que se llama una función llamada myFunction:
function myFunction() {
console.log(arguments.callee.caller.name);
/* Other stuff... */
}
El soporte de los navegadores para que esto no es tan grande, sin embargo, lo que podría utilizar arguments.callee.caller.toString() en lugar. Tenga en cuenta que esto le devolverá el contenido de la función que llamó a myFunction, por lo que tendrá que extraer el nombre de la función de usted mismo.
O, usted podría utilizar una buena función de seguimiento de la pila siguiente manera:
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;
}
Seguimiento de la pila a través de http://www.amirharel.com/2010/01/25/using-caller-and-callee-for-stack-trace/
Esto ayudará a: http://stackoverflow.com/questions/280389/how-do-you-find-out-the-caller-function-in-javascript – Sid
Un enlace más http://stackoverflow.com/questions/147891/javascript-exception-stack-trace –