Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memanggil Fungsi JavaScript Menggunakan Namanya Disimpan sebagai Rentetan?

Bagaimanakah Saya Boleh Memanggil Fungsi JavaScript Menggunakan Namanya Disimpan sebagai Rentetan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-26 04:03:09469semak imbas

How Can I Call a JavaScript Function Using Its Name Stored as a String?

Memanggil Fungsi JavaScript mengikut Nama Disimpan dalam Rentetan

Dalam senario tertentu, anda mungkin menghadapi situasi di mana anda memiliki nama fungsi sebagai rentetan dan perlu melaksanakannya. Untuk mencapainya, ikuti langkah berikut:

Kaedah 1: Untuk Fungsi Rata

Untuk fungsi yang bukan sebahagian daripada ruang nama, gunakan sintaks berikut:

window["functionName"](arguments);

Kaedah 2: Untuk Ruang Nama Fungsi

Untuk fungsi dalam ruang nama, sintaks berikut diperlukan:

var namespaces = functionName.split(".");
var func = namespaces.pop();
for (var i = 0; i < namespaces.length; i++) {
  context = context[namespaces[i]];
}
context[func].apply(context, args);

Kaedah 3: Menggunakan Fungsi Kemudahan

Untuk memudahkan proses, anda boleh menggunakan kemudahan berikut fungsi:

function executeFunctionByName(functionName, context /*, args */) {
  var args = Array.prototype.slice.call(arguments, 2);
  var namespaces = functionName.split(".");
  var func = namespaces.pop();
  for(var i = 0; i < namespaces.length; i++) {
    context = context[namespaces[i]];
  }
  return context[func].apply(context, args);
}

Memanggil Fungsi

Untuk memanggil fungsi menggunakan mana-mana kaedah, nyatakan nama fungsi dan konteks seperti yang ditunjukkan di bawah:

executeFunctionByName("My.Namespace.functionName", window, arguments);

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Fungsi JavaScript Menggunakan Namanya Disimpan sebagai Rentetan?. 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