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