Bagaimana cara mengimplementasikan metode berlebih di JS? Ini melibatkan tiga masalah
1. Masalah fungsi panggilan dengan nama yang sama
2. Parameter khusus dalam fungsi
3. Cara menggunakan argumen untuk mengimplementasikan kelebihan metode
1. Masalah fungsi panggilan dengan nama yang sama
Semua orang tahu bahwa jika ada beberapa fungsi dengan nama yang sama di JS, yang terakhir akan digunakan setiap kali saat menelepon. JS sebenarnya tidak kelebihan beban. Dengan kata lain, jika beberapa fungsi dengan nama yang sama didefinisikan, parameter tunggal berbeda. Saat menelepon, JS tidak peduli dengan jumlah parameter, tetapi hanya urutan sebelum dan sesudah
Misalnya:
function test1 (arg1) {alert ("Parameter 1:"+arg1); } function test1 (arg1, arg2, arg3) {alert ("parameter 1:"+arg1+"parameter 2:"+arg2+"parameter 3:"+arg3); } // test code function test () {test1 ("1")}Meskipun kami memanggil test1 ("1"), melewati parameter, panggilan aktual adalah test1 (arg1, arg2, arg3), dan kami tidak memanggil metode dengan hanya satu parameter karena kami melewati parameter.
2. Parameter khusus dalam fungsi
Jika kami menggunakan kode berikut
function test1 (arg1, arg2, arg3) {alert ("parameter 1:"+arg1+"parameter 2:"+arg2+"parameter 3:"+arg3); } function test1 (arg1) {alert ("Parameter 1:"+arg1); } // test code function test () {test1 ("1", "2")}Kita tahu bahwa panggilan selalu test1 (arg1), yang berarti fungsi dengan hanya satu parameter, tetapi bagaimana cara mendapatkan parameter lain yang dilewati?
Ini membutuhkan penggunaan parameter khusus dalam argumen fungsi, yang berisi semua parameter yang diteruskan ke fungsi
function test1 () {var text = ""; untuk (var i = 0; i <arguments.length; i ++) {text+= "parameter"+i+":"+argumen [i]; } peringatan (teks); } // test code function test () {test1 ("1"); test1 ("1", "2"); test1 ("1", "2", "3"); }Setelah pengujian, ditemukan bahwa argumen berisi semua parameter yang diteruskan ke fungsi, dan argumen. Panjang bervariasi sesuai dengan jumlah parameter aktual yang dilewati, dan argumen. Panjang mewakili jumlah yang benar -benar diteruskan ke parameter fungsi.
3. Bagaimana menerapkan kelebihan fungsi di JS?
Setelah tes di atas, ditemukan bahwa kelebihan fungsi tidak dapat diimplementasikan secara langsung di JS, tetapi apakah ada cara untuk mencapai efek kelebihan beban yang sama?
Ya, terutama gunakan argumen
Misalnya:
function test1 () {var text = ""; if (arguments.length == 1) {// Memanggil metode satu parameter} else if (arguments.length == 2) {// Memanggil metode dua parameter} else {// metode lain}}