Adakah mungkin untuk mencipta fungsi JavaScript dengan nama yang ditentukan pada masa jalan, tanpa menggunakan ciri khusus enjin eval atau tidak konvensional ? Ya, ini kini boleh dilakukan dengan ECMAScript 2015 (ES6) dan seterusnya.
Dalam ES6, ungkapan fungsi tanpa nama yang diberikan kepada sifat objek mengambil nama itu harta benda. Ini boleh digabungkan dengan nama harta yang dikira untuk menamakan fungsi tanpa Fungsi atau eval baharu. Contohnya:
const dynamicName = "foo" + Math.floor(Math.random() * 1000); const obj = { [dynamicName]() { throw new Error(); }, }; const f = obj[dynamicName];
Ini mencipta fungsi bernama "foo###" di mana ### ialah nombor rawak 1-3 digit.
Harta nama fungsi akan mencerminkan nama dinamik. Nota keserasian dalam coretan kod di atas merujuk kepada fakta bahawa Edge dan Safari pada masa ini tidak menunjukkan nama dalam surih tindanan.
Atas ialah kandungan terperinci Bolehkah Anda Mencipta Fungsi Runtime-Named dalam JavaScript Tanpa `eval`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!