首頁 >web前端 >js教程 >如何可靠地識別 JavaScript 中的呼叫函數?

如何可靠地識別 JavaScript 中的呼叫函數?

Patricia Arquette
Patricia Arquette原創
2024-12-29 20:44:12950瀏覽

How Can I Reliably Identify the Caller Function in JavaScript?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn