Dalam JavaScript, fungsi fungsi adalah objek.
Tidak ada metode yang berlebihan di JS
Dalam JavaScript, tidak ada konsep metode kelebihan metode (fungsi).
contoh:
Salinan kode adalah sebagai berikut:
<Html>
<head>
<type skrip = "Teks/JavaScript">
fungsi add (angka)
{
peringatan (angka + 20);
}
fungsi add (angka, angka1)
{
peringatan (angka + 30);
}
tambahkan (10);
</script>
</head>
<body>
</body>
</html>
Kotak peluru di halaman web menunjukkan 40.
Penjelasan Meskipun metode kedua adalah dua parameter, masih disebut.
Setelah bertukar urutan kedua metode, kotak pop-up menampilkan 30. Dapat dilihat bahwa terlepas dari jumlah parameter, metode berikut dengan nama yang sama dipanggil.
Bagaimana menjelaskan fenomena ini?
Ini karena deklarasi fungsi sebenarnya membuat objek:
Salinan kode adalah sebagai berikut:
<Html>
<head>
<type skrip = "Teks/JavaScript">
fungsi add (angka)
{
peringatan (angka + 20);
}
/*
Fungsi di atas setara dengan:
var add = fungsi (angka)
{
peringatan (angka + 20);
}
*/
fungsi add (angka, angka1)
{
peringatan (angka + 30);
}
/*
Fungsi di atas setara dengan:
var add = fungsi (angka, angka1)
{
peringatan (angka + 30);
}
*/
tambahkan (10);
</script>
</head>
<body>
</body>
</html>
Dengan cara ini, tambahkan sebenarnya titik ke objek berikutnya, dan parameter yang ditetapkan ketika metode dipanggil akan ditetapkan ke metode parameter formal dalam urutan, dan parameter yang tidak ditetapkan setelahnya tidak terdefinisi.
Saat memanggil fungsi JavaScript, tidak ada pemeriksaan ketat dari jumlah parameter. Tidak apa -apa untuk memiliki jumlah parameter yang sebenarnya lebih kecil dari jumlah parameter formal. Parameter formal yang tidak ditetapkan adalah nilai yang tidak ditentukan.
Mungkin juga bahwa jumlah parameter riil lebih besar dari jumlah parameter formal. Dengan cara ini, hanya parameter aktual sebelumnya yang akan digunakan, dan parameter aktual tambahan tidak akan digunakan.
Objek fungsi
Ada objek fungsi dalam JavaScript, dan semua fungsi khusus adalah jenis objek fungsi.
Semua parameter yang diterima oleh objek fungsi adalah tipe string, parameter terakhir adalah badan fungsi yang akan dijalankan, dan parameter sebelumnya adalah parameter yang benar -benar perlu diterima fungsi.
contoh:
Salinan kode adalah sebagai berikut:
<Html>
<head>
<type skrip = "Teks/JavaScript">
var add = fungsi baru ("angka", "angka1", "peringatan (angka + angka1);");
var add = fungsi baru ("angka", "peringatan (angka + 20);");
Tambahkan (10, 30);
</script>
</head>
<body>
</body>
</html>
Argumen objek implisit
Dalam JavaScript, setiap fungsi memiliki argumen objek implisit, mewakili parameter yang sebenarnya diteruskan ke fungsi.
Argumen tidak ada hubungannya dengan parameter formal fungsi dan jumlahnya.
Argumen memiliki panjang atribut yang berguna, menunjukkan panjang parameter aktual. Anda dapat menggunakan ini untuk mensimulasikan kelebihan fungsi:
Contoh Latihan:
Salinan kode adalah sebagai berikut:
<Html>
<head>
<type skrip = "Teks/JavaScript">
fungsi add (number1, number2)
{
peringatan (argumen.length);
peringatan (argumen [0]);
peringatan (argumen [1]);
waspada (argumen [2]);
}
// Tambahkan (2, 3, 4);
fungsi add2 ()
{
if (1 == argumen.length)
{
peringatan (argumen [0]);
}
lain jika (2 == argumen.length)
{
peringatan (argumen [0] + argumen [1]);
}
lain jika (3 == argumen.length)
{
peringatan (argumen [0] + argumen [1] + argumen [2]);
}
}
add2 (3);
add2 (3, 4);
add2 (3, 4, 5);
</script>
</head>
<body>
</body>
</html>
Setiap objek fungsi memiliki atribut panjang, menunjukkan format parameter yang diharapkan oleh fungsi untuk diterima.
Ini berbeda dari argumen fungsi. Argumen. Panjang mewakili jumlah parameter yang sebenarnya diterima oleh fungsi.
contoh:
Salinan kode adalah sebagai berikut:
<Html>
<head>
<type skrip = "Teks/JavaScript">
var add = fungsi (num, num2, num3)
{
peringatan (num + num2 + num3);
}
peringatan (add.length); // output 3
Tambahkan (1, 2, 3);
var add2 = fungsi ()
{
}
peringatan (add2.length); // output 0
</script>
</head>
<body>
</body>
</html>