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