首頁  >  文章  >  web前端  >  JavaScript中如何動態取得目前函數的名稱?

JavaScript中如何動態取得目前函數的名稱?

Susan Sarandon
Susan Sarandon原創
2024-10-21 15:27:30557瀏覽

How to Dynamically Get the Name of the Current Function in JavaScript?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn