Rumah > Artikel > hujung hadapan web > Bagaimana untuk memanggil fungsi dari nama fungsi yang disimpan dalam rentetan menggunakan JavaScript?
Kami akan menggunakan fungsi eval() untuk memanggil fungsi daripada namanya yang disimpan dalam rentetan. Evaluate() Fungsi menilai rentetan ke dalam kod JavaScript. Ini membolehkan kami memanggil fungsi melalui Hantar rentetan yang mengandungi namanya sebagai hujah kepada fungsi eval().
Berikut ialah contoh lengkap cara memanggil fungsi daripada nama fungsi yang disimpan dalam rentetan menggunakan JavaScript -
// Define the function that we want to call function sayHello() { console.log("Hello, world!"); } // Store the function name as a string let functionName = "sayHello"; // Use the `eval()` function to convert the string to a function call eval(functionName + "()");
Dalam contoh di atas, kami mula-mula mentakrifkan fungsi mudah yang dipanggil sayHello(), yang hanya log "Hello, world!" Seterusnya, kami mentakrifkan pembolehubah yang dipanggil functionName yang menyimpan rentetan "sayHello", iaitu nama fungsi yang ingin kami panggil.
Akhir sekali, kami menggunakan fungsi eval() untuk menukar string functionName menjadi panggilan fungsi dengan menggabungkannya dengan kurungan () yang diperlukan untuk benar-benar memanggil fungsi tersebut.
eval() ialah ciri JavaScript yang berkuasa tetapi berpotensi berbahaya yang membolehkan anda menilai rentetan seperti kod JavaScript. Menggunakan eval() dalam kod pengeluaran biasanya tidak disyorkan kerana ia boleh digunakan untuk melaksanakan kod sewenang-wenangnya, yang boleh menjadi risiko keselamatan.
Perlu dinyatakan bahawa terdapat cara yang lebih selamat untuk memanggil fungsi daripada namanya yang disimpan dalam rentetan tanpa menggunakan eval, seperti -
let functionName = "sayHello"; let functionObj = window[functionName]; functionObj();
atau
let functionName = "sayHello"; let functionObj = window['sayHello']; functionObj();
Alternatif ini lebih selamat daripada menggunakan eval kerana ia tidak melaksanakan kod sewenang-wenangnya tetapi merujuk kepada fungsi secara terus mengikut nama.
Atas ialah kandungan terperinci Bagaimana untuk memanggil fungsi dari nama fungsi yang disimpan dalam rentetan menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!