Mencipta Fungsi dengan Nama Yang Ditentukan Masa Jalan (Tanpa Eval)
Dalam JavaScript, mencipta fungsi dengan nama yang ditentukan masa jalan boleh dilaksanakan dalam ECMAScript 2015 dan kemudiannya, menggunakan dua ciri utama: ungkapan fungsi tanpa nama dan nama sifat yang dikira.
Penyelesaian ES2015:
Dalam ES2015, ungkapan fungsi tanpa nama yang ditetapkan kepada sifat objek mewarisi nama daripada harta itu. Ini membolehkan kami:
const dynamicName = "foo" + Math.floor(Math.random() * 1000); const obj = { [dynamicName]() { throw new Error(); }, }; const f = obj[dynamicName]; // Demonstrate function's name property console.log("Function's `name` property: " + f.name); // Exception handling reveals the name in stack traces try { f(); } catch (e) { console.log(e.stack); }
Dalam kod ini:
Nota Keserasian:
Perhatikan bahawa semasa semua penyemak imbas moden melaksanakan fungsi, Edge dan Safari tidak memaparkan nama yang diberikan dalam surih tindanan.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Fungsi dengan Nama Runtime-Determined dalam JavaScript (Tanpa Eval)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!