從內部發現函數身分
從函數內部存取函數名稱的挑戰在程式設計中經常出現。對於 JavaScript,有多種方法可以解決此問題。
ES6: myFunction.name
在 ES6 及更高版本中,直接的解決方案是使用 myFunction.name財產。該屬性提供了函數的名稱,使其成為一種高效且簡單的方法。
ES5:函數解析
對於 ES5,名為 functionName(fun) 的自訂函數可以建立從函數的字串表示中提取名稱。它會修剪「function」前綴和括號,提供所需的函數名稱。
基於正規表示式的方法
或者,可以使用正規表示式來取得函數名稱。 nus 提供的以下基於正規表示式的函數提供了增強的性能:
<code class="javascript">function funName(fun) { return fun.toString().match(/function ([^\(]+)[\s\S]*/)[1]; }</code>
注意事項和注意事項
需要注意的是,壓縮器可能會優化函數名稱以改善壓縮。如果這造成問題,您可能需要調整縮小器設定。此外,應避免使用 Function.caller 和arguments.callee,因為它們是非標準的,並且在嚴格模式下不鼓勵使用。
以上是如何在 JavaScript 中從函數內部存取函數的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!