存取函數本身內部的名稱:全面探索
在JavaScript 中,從函數本身內部存取函數名稱可能是一個很有價值的工具用於調試、內省和各種場景。以下詳細介紹了實現此目的的技術:
ES6:一個簡單的解決方案
隨著 ES6 的引入,存取函數的名稱變得微不足道。只需使用 myFunction.name 屬性即可檢索函數的名稱。這種方法簡單可靠。
ES5:利用 Function.toString()
在 ES5 中,沒有直接的方法來存取函數的名稱。但是,您可以利用 Function.toString() 方法來提取它。以下是執行此任務的範例函數:
<code class="javascript">function functionName(fun) { var ret = fun.toString(); ret = ret.substr('function '.length); ret = ret.substr(0, ret.indexOf('(')); return ret; }</code>
此函數分析函數的 toString() 輸出,以隔離「function」前綴和第一個左括號之間的名稱。
避免使用Function.caller和arguments.callee
需要注意的是,不建議使用Function.caller或arguments.callee,因為它們是非標準的,並且在嚴格模式下不鼓勵使用。這些屬性可能會提供不可靠的結果或導致意外的行為。
以上是以下是一些基於問題的標題,它們抓住了文章的精髓: * **如何從函數本身存取 JavaScript 函數的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!