一尘不染

如何找到JavaScript中的调用者函数?

javascript

function main()
{
   Hello();
}

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

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


阅读 482

收藏
2020-04-25

共1个答案

一尘不染

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

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

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


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

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
2020-04-25