小编典典

如何在 JavaScript 中找出调用者函数?

all

function main()
{
   Hello();
}

function Hello()
{
  // How do you find out the caller function is 'main'?
}

有没有办法找出调用堆栈?


阅读 98

收藏
2022-02-28

共1个答案

小编典典

请注意,此解决方案已弃用,根据 MDN 文档不应再使用

https://developer.mozilla.org/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller


function Hello()
{
    alert("caller is " + Hello.caller);
}

请注意,此功能是 非标准的 ,来自Function.caller

非标准
此功能是非标准的,不在标准轨道上。不要在面向 Web
的生产站点上使用它:它不适用于每个用户。实现之间也可能存在很大的不兼容性,并且行为可能会在未来发生变化。


以下是 2008 年的旧答案,现代 Javascript 不再支持该答案:

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
2022-02-28