首页  >  文章  >  web前端  >  如何在 JavaScript 中获取调用函数的行号和源 URL?

如何在 JavaScript 中获取调用函数的行号和源 URL?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-20 21:52:02644浏览

How to Get Line Number and Source URL of Caller Function in JavaScript?

获取 JavaScript 中调用函数的行号和源 URL

确定调用 JavaScript 方法的行号和源 URL 可以对于调试目的和跟踪执行流程很有价值。虽然没有直接的内置方法,但我们可以利用 Error 对象的 stack 属性来检索此信息。

获取调用函数行号

获取调用者函数被调用的行号,我们可以解析 Error 对象的 stack 属性:

<code class="js">function getErrorObject() {
  try {
    throw Error('');
  } catch (err) {
    return err;
  }
}

var err = getErrorObject();
var caller_line = err.stack.split("\n")[4];
var index = caller_line.indexOf("at ");
var clean = caller_line.slice(index + 2, caller_line.length);
console.log(clean);</code>

在这个例子中,我们抛出一个错误来检索包含调用堆栈的 Error 对象。然后,我们按换行符分割堆栈并选择第四行(索引 3),该行通常包含调用者函数信息。我们修剪前导的“at”字符串以提取行号。

获取调用函数源 URL

不幸的是,没有直接的方法来获取调用函数的源 URL来自函数本身的调用者函数。但是,我们可以使用涉及控制台日志记录的解决方法:

<code class="js">function logCallerInfo() {
  console.log("%c", "color: white; background: #000; padding:2px; line-height: 1.5em;",
    err.stack.split("\n")[4]);
}

logCallerInfo();</code>

在此示例中,我们使用控制台日志记录以自定义样式显示调用方函数信息。堆栈的第四行(索引 3)应包含调用方函数的源 URL。检查控制台输出将揭示所需的信息。

虽然这些方法提供了一种近似调用者函数行号和源 URL 的方法,但需要注意的是,它们可能并不在所有情况下都完全可靠。

以上是如何在 JavaScript 中获取调用函数的行号和源 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn