Definisi fungsi JS dapat menentukan nama parameter formal. Parameter ini mirip dengan array metode. Dengan kata lain, semua fungsi JS mendukung parameter tak terbatas, dan tipe data adalah tipe yang lemah, jadi benar -benar tidak ada perbedaan metode antara fungsi JS kecuali untuk nama?
Selalu ada cara, kita dapat menggunakan argumen objek khusus dalam JavaScript untuk mensimulasikan fungsi berlebih. Gunakan untuk menentukan jumlah atau jenis parameter yang masuk untuk membedakan kelebihan beban.
1. Muat ulang sesuai dengan jumlah parameter
JS untuk menentukan jumlah parameter yang masuk dapat dinilai dengan argumen. Atribut Panjang;
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
fungsi add () {
if (arguments.length == 1) {
peringatan (argumen [0] + 10);
}
lain if (arguments.length == 2) {
peringatan (argumen [0] + argumen [1]);
}
}
// Panggilan fungsi
tambahkan (10);
Tambahkan (10, 20);
</script>
2. Muat ulang sesuai jenis parameter
Ada 3 cara untuk menilai jenis variabel:
1. Gunakan pernyataan TypeOF untuk menilai jenis variabel, dan pernyataan TypeOF mengembalikan string yang sesuai dengan tipe tersebut.
2. Gunakan pernyataan instanceof untuk menilai jenis variabel, dan pernyataan instance dari mengembalikan true/false.
3. Gunakan atribut konstruktor untuk menentukan jenis variabel, yang mengembalikan referensi konstruktor yang digunakan untuk membangun variabel.
Tabel Perbandingan: Dapat dilihat bahwa menggunakan TypeOF tidak dapat secara akurat menentukan jenis spesifiknya, jadi kami menggunakan konstruktor untuk membuat penilaian.
tipeof | rangkaian | nomor | obyek | fungsi | Boolean | obyek | obyek |
konstruktor | Rangkaian | Nomor | Obyek | Fungsi | Boolean | Array | Pengguna Tentukan |
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
fungsi add ()
{{
if (arguments.length == 0) return 0;
var sum = 0;
untuk (var i = 0; i <arguments.length; i ++) {
if (argumen [i] .constructor == angka) {
// atau ubah ke: if (argumen [i] instance dari nomor)
// atau ubah ke: if (typeof (argumen [i]) == "angka")
jumlah += argumen [i];
}
}
jumlah pengembalian;
}
// Panggilan fungsi
peringatan (tambahkan (10));
peringatan (tambahkan (10,20));
</script>