function main() { Hello(); } function Hello() { // How do you find out the caller function is 'main'? }
有没有办法找出调用堆栈?
请注意,此解决方案已弃用,根据 MDN 文档不应再使用
https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller
function Hello() { alert("caller is " + Hello.caller); }
请注意,此功能是 非标准的 ,来自Function.caller:
Function.caller
非标准 此功能是非标准的,不在标准轨道上。不要在面向 Web 的生产站点上使用它:它不适用于每个用户。实现之间也可能存在很大的不兼容性,并且行为可能会在未来发生变化。
以下是 2008 年的旧答案,现代 Javascript 不再支持该答案:
function Hello() { alert("caller is " + arguments.callee.caller.toString()); }