获取 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中文网其他相关文章!