Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Melaksanakan Fungsi JavaScript Menggunakan Nama Rentetannya?

Bagaimanakah Saya Boleh Melaksanakan Fungsi JavaScript Menggunakan Nama Rentetannya?

Linda Hamilton
Lepaskan: 2024-12-19 10:27:16
asal
721 orang telah melayarinya

How Can I Execute a JavaScript Function Using Its String Name?

Melaksanakan Fungsi JavaScript dengan Perwakilan Rentetan

Pertanyaan: Anda mempunyai nama fungsi JavaScript yang disimpan sebagai rentetan dan berhasrat untuk memanggilnya kemudian . Bagaimanakah anda boleh menukar rentetan ini kepada penuding fungsi untuk menggunakan fungsi itu seterusnya?

Jawapan:

  • Elakkan eval: Gunakan alternatif yang lebih selamat seperti window["functionName "](hujah) atau window"My"["functionName"](arguments).
  • Fungsi Keselesaan: Laksanakan fungsi seperti executeFunctionByName, seperti yang dilihat di bawah:
function executeFunctionByName(functionName, context /*, args */) {
  // Retrieve arguments
  var args = Array.prototype.slice.call(arguments, 2);
  // Split the namespace into parts
  var namespaces = functionName.split(".");
  // Get the function name
  var func = namespaces.pop();
  // Iterate through namespaces and get the context
  for (var i = 0; i < namespaces.length; i++) {
    context = context[namespaces[i]];
  }
  // Apply the function with the context and arguments
  return context[func].apply(context, args);
}
Salin selepas log masuk
  • Invokasi: Gunakan fungsi kemudahan sebagai berikut:
executeFunctionByName("My.Namespace.functionName", window, arguments);
Salin selepas log masuk

Penyelesaian ini membenarkan pelaksanaan fungsi dinamik berdasarkan perwakilan rentetan, walaupun untuk fungsi dalam ruang nama. Pertimbangkan penyelesaian komprehensif yang disediakan untuk mengendalikan senario ini dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Fungsi JavaScript Menggunakan Nama Rentetannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan