Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Melaksanakan Panggilan Fungsi daripada String dalam JavaScript?

Bagaimana untuk Melaksanakan Panggilan Fungsi daripada String dalam JavaScript?

DDD
DDDasal
2024-10-27 12:17:30645semak imbas

How to Execute a Function Call from a String in JavaScript?

Memajukan Panggilan Fungsi daripada Rentetan

Dalam JavaScript, adalah mungkin untuk menukar rentetan yang mewakili panggilan fungsi kepada panggilan fungsi sebenar . Pertimbangkan kes di mana kita mempunyai rentetan seperti:

"clickedOnItem(" + t.parentNode.id + ")"

yang ingin kita terjemahkan ke dalam panggilan fungsi:

clickedOnItem(IdofParent);

Untuk mencapai ini, kita boleh menggunakan pendekatan berikut:

<code class="javascript">var fn = window[settings.functionName];
if(typeof fn === 'function') {
    fn(t.parentNode.id);
}</code>

Dalam coretan ini, kami mula-mula mendapatkan semula rujukan fungsi daripada objek tetingkap menggunakan rentetan yang disimpan dalam settings.functionName. Jika fungsi itu wujud, kami meneruskan untuk memanggilnya dengan argumen yang dikehendaki.

Sebagai contoh, jika settings.functionName ditetapkan kepada "clickedOnItem", melaksanakan kod akan menghasilkan:

<code class="javascript">var fn = window["clickedOnItem"]; // Fetch the function reference
fn(t.parentNode.id); // Invoke the function</code>

Ini secara berkesan meniru seruan fungsi manual yang kami sasarkan. Ingat bahawa pendekatan ini secara amnya tidak disukai kerana potensi kebimbangan keselamatan dan kebolehselenggaraan. Pertimbangkan untuk meneroka alternatif yang lebih selamat, seperti menggunakan pembina Fungsi atau fungsi anak panah, untuk membina panggilan fungsi secara dinamik.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Panggilan Fungsi daripada String dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn