檢索目前執行函數的名稱的概念一直是瀏覽JavaScript 的程式設計師面臨的一個緊迫問題景觀。本文深入探討了這個看似簡單的任務的可能性和實用性。
ES5 及以上版本的限制
從 ES5 開始,JavaScript 不再提供對名稱的直接存取的運作功能。此限制源自於該語言試圖阻止惡意程式碼操縱呼叫堆疊。
存取舊版 JavaScript 中的函式名稱
在 ES5 之前,開發人員可以利用arguments.callee屬性來擷取呼叫函式的名稱。但是,這種方法有一些缺點:
解析函數名稱
為了從任何附加資訊中純化函數名稱,一些JavaScript 實作提供了arguments.callee.name 屬性。如果此方法不可用,開發人員可以使用以下解析技術:
<code class="javascript">function DisplayMyName() { var myName = arguments.callee.toString(); myName = myName.substr('function '.length); myName = myName.substr(0, myName.indexOf('(')); alert(myName); }</code>
以上是如何在 JavaScript 中取得正在運行的函數的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!