在 JavaScript 中取得目前函數的名稱
能否在 JavaScript 中動態存取目前正在執行的函數的名稱?
問題描述
考慮以下範例:
<code class="javascript">myfile.js: function foo() { alert(<my-function-name>); // pops-up "foo" // or even better: "myfile.js : foo" }</code>
目標是擷取函數的名稱以及可能的完整位置(檔案名稱:函數名稱)。這可以實現嗎?
解決方案
在ES5 及更高版本中: 不幸的是,ES5 中沒有內建機制來取得函數名稱及後續版本。
在較舊的 JavaScript 版本中:在早期版本的 JavaScript 中,可以使用arguments.callee 存取函數名稱。然而,這種方法可能需要一些解析,因為傳回的值可能包含無關的資訊。
解析方法:
<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 - 取得目前函數名稱](https://stackoverflow.com/questions /4267180/javascript-get-current-function-name)
以上是JavaScript中如何動態取得目前函數的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!