取得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中文網其他相關文章!