使用運行時確定的名稱而不使用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中文網其他相關文章!