有没有办法确定哪个函数在javascript中调用了myFunction

Is there any way to determine which function called myFunction in javascript?

本文关键字:javascript 调用 myFunction 函数 有没有      更新时间:2023-09-26

可能重复:
确定javascript 中的调用函数

假设我有一个javascript函数,我想知道谁是调用者。如果不使用全局变量/参数方法,这可能吗?

要与多种浏览器兼容,您需要以下内容:

if (typeof arguments.caller == 'function') {
  return arguments.caller;
} else if (typeof arguments.callee == 'function' && 
           typeof arguments.callee.caller == 'function') {
  return arguments.callee.caller;
} else {
  // called from global scope, in strict mode or browser doesn't support
  // either of the above access methods
}

请注意,在ES5严格模式下,访问arguments.callee或caller会引发异常,以上可能会避免这种情况,但我现在无法测试它。