0

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

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

4

1 回答 1

0

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

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 会抛出异常,上面可能会避免这种情况,但我现在无法测试它。

于 2012-04-04T02:47:39.057 回答