JavaScript 中的调用者函数识别
在 JavaScript 中,函数的 caller 属性允许您检索调用它的函数的名称。但是,此属性已被视为已弃用,不再建议使用。
function main() { Hello(); } function Hello() { // How do you find out the caller function is 'main'? }
查找调用堆栈
要确定调用堆栈,您可以使用arguments.callee .caller.toString(),但这也已被弃用。请注意,此解决方案是非标准的,可能无法在所有浏览器或 JavaScript 实现中工作。
已弃用的解决方案
function Hello() { alert(`caller is ${arguments.callee.caller.toString()}`); }
现代解决方案
更现代的解决方案是使用新的Error().stack.
function Hello() { console.log(new Error().stack); }
这将输出堆栈跟踪,其中包括调用者函数的名称。
重要提示:
caller 属性和arguments.callee.caller.toString() 已弃用,不应用于生产代码。始终使用新的 Error().stack 解决方案来获取调用堆栈。
以上是如何可靠地识别 JavaScript 中的调用函数?的详细内容。更多信息请关注PHP中文网其他相关文章!