Dalam banyak bahasa berorientasikan objek peringkat tinggi, terdapat kaedah terlebih muatan. Dan javascript tidak mempunyai konsep kaedah overloading. Tetapi kita boleh menggunakan parameter argumen untuk menyamarkannya sebagai beban berlebihan fungsi
Mari kita lihat kod sebelum mensimulasikan:
//Fungsi yang tidak mengisytiharkan parameter rasmi pada permukaan
fun function() {
makluman("Kod contoh");
}
fun("Xiao Ming", 100, true);//Saya menulis tiga parameter sebenar
Daripada keputusan, kita melihat bahawa walaupun kita tidak menentukan parameter formal semasa mengisytiharkan fungsi, kita masih boleh menulis parameter sebenar apabila memanggil kaedah. (Sebenarnya, parameter formal ditulis untuk dilihat oleh pengaturcara semasa memanggil fungsi)
Bolehkah kami mendapatkan parameter sebenar dalam kod? Jawapannya ya: sila lihat kod:
//Fungsi yang tidak mengisytiharkan parameter rasmi pada permukaan
fun function() {
alert(arguments[0]);//Dapatkan nilai parameter sebenar pertama.
alert(arguments[1]);//Dapatkan nilai parameter sebenar kedua.
alert(arguments[2]);//Dapatkan nilai parameter sebenar ketiga.
alert(arguments.length);//Dapatkan bilangan parameter sebenar.
makluman("Kod contoh");
}
fun("Xiao Ming", 100, true);//Saya menulis tiga parameter sebenar
Melalui kod tersebut, kita boleh mengetahui bahawa argumen (sifat dalaman) itu sendiri adalah tatasusunan, dan fungsinya adalah untuk menyimpan parameter sebenar kaedah tersebut.
Dengan mata pengetahuan di atas, anda akan mempunyai idea untuk membebankan kaedah simulasi. Kita boleh membuat pertimbangan berdasarkan bilangan parameter sebenar untuk melaksanakan kod logik yang berbeza. Kod mudah adalah seperti berikut:
fun function() {
if (arguments.length == 0) {
alert("Laksanakan kod tanpa parameter sebenar");
}
else if(arguments.length==1)
{
alert("Laksanakan kod yang diluluskan dalam parameter sebenar");
}
else if(arguments.length==2)
{
alert("Laksanakan kod yang diluluskan dalam dua parameter sebenar");
}
}
seronok();
menyeronokkan("Xiao Ming");
menyeronokkan("Xiao Ming", "Xiao Hua");