Menyebut Fungsi JavaScript mengikut Nama
Dalam JavaScript, mengakses fungsi dengan namanya sebagai rentetan boleh menjadi kaedah yang mudah untuk pelaksanaan kod dinamik . Walau bagaimanapun, untuk mencapai ini memerlukan pendekatan berhati-hati untuk mengelakkan potensi kelemahan keselamatan.
Penyelesaian:
Daripada menggunakan fungsi eval yang tidak selamat, yang harus dielakkan melainkan benar-benar perlu, alternatif yang lebih selamat ialah menggunakan teknik berikut:
1. Seruan Fungsi Global:
Untuk memanggil fungsi global dengan nama rentetannya, gunakan sintaks berikut:
window["functionName"](arguments);
Kaedah ini berfungsi untuk fungsi yang diisytiharkan pada skop global.
2. Seruan Fungsi Ruang Nama (Borang Kompleks):
Untuk menggunakan fungsi yang dimiliki oleh ruang nama, gunakan sintaks kompleks berikut:
window["My"]["Namespace"]["functionName"](arguments);
Sintaks ini memastikan fungsi itu diakses melalui ruang nama bersarangnya.
3. Seruan Fungsi Ruang Nama (Fungsi Keselesaan):
Untuk seruan fungsi ruang nama yang dipermudahkan, pertimbangkan untuk menggunakan fungsi kemudahan berikut:
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); }
Anda boleh menggunakan fungsi ruang nama menggunakan fungsi kemudahan ini sebagai berikut:
executeFunctionByName("My.Namespace.functionName", window, arguments);
Kaedah ini membolehkan anda menentukan secara fleksibel fungsi konteks, mendayakan seruan daripada bahagian lain kod anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi JavaScript dengan Selamat mengikut Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!