首頁 >web前端 >js教程 >您可以在 JavaScript 中使用執行時間確定的名稱建立命名函數嗎?

您可以在 JavaScript 中使用執行時間確定的名稱建立命名函數嗎?

Linda Hamilton
Linda Hamilton原創
2024-11-14 10:09:01678瀏覽

Can You Create a Named Function in JavaScript with a Runtime-Determined Name?

使用運行時確定的名稱而不使用eval 創建函數

問題:

是否可能在純JavaScript 中建立命名函數而不使用eval 或非標準功能,其中該函數名稱是在執行時間確定的?

答案(僅限ES6):

是的,在ES6 及更高版本(又稱為「ES2015」)中,可以使用匿名函數表達式分配給計算物件屬性名稱。

const dynamicName = "foo" + Math.floor(Math.random() * 1000);
const obj = {
    [dynamicName]() {
        // ...
    },
};
const f = obj[dynamicName];
console.log("Function's `name` property: " + f.name); // Outputs "foo###", where ### is a random 1-3 digit number

在此範例中,我們使用計算屬性名稱來動態產生隨機名稱的功能。該函數被指派給物件屬性,並且可以透過 name 屬性存取其名稱。但請注意,瀏覽器相容性可能會有所不同,並且某些瀏覽器可能不會在堆疊追蹤中顯示動態函數名稱。

以上是您可以在 JavaScript 中使用執行時間確定的名稱建立命名函數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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