Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk memanggil fungsi dari nama fungsi yang disimpan dalam rentetan menggunakan JavaScript?

Bagaimana untuk memanggil fungsi dari nama fungsi yang disimpan dalam rentetan menggunakan JavaScript?

王林
王林ke hadapan
2023-08-27 09:09:111089semak imbas

如何使用 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().

Contoh

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.

  • Fungsi
  • 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.

Kaedah Alternatif

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam