Objek Argumen
Dalam kode fungsi, argumen objek khusus digunakan, pengembang dapat mengaksesnya tanpa secara eksplisit menunjukkan nama parameter.
Misalnya, dalam fungsi Sayshi (), parameter pertama adalah pesan. Nilai ini juga dapat diakses dengan argumen [0], yaitu nilai parameter pertama (parameter pertama adalah pada posisi 0, parameter kedua adalah pada posisi 1, dan seterusnya).
Oleh karena itu, Anda dapat mengganti fungsi tanpa secara eksplisit memberi nama parameter:
fungsi sayshi () {if (argumen [0] == "bye") {return;} waspada (argumen [0]);}Jumlah parameter deteksi
Anda juga dapat menggunakan objek argumen untuk mendeteksi jumlah parameter fungsi dan merujuk ke argumen atribut.
Kode berikut akan menghasilkan jumlah parameter yang digunakan untuk setiap panggilan ke fungsi:
function howmanyargs () {alert (arguments.length);} howmanyargs ("string", 45); howmanyargs (); howmanyargs (12);Kode di atas akan menampilkan "2", "0" dan "1" pada gilirannya.
Catatan: Tidak seperti bahasa pemrograman lainnya, ECMASCRIPT tidak memverifikasi bahwa jumlah parameter yang diteruskan ke fungsi sama dengan jumlah parameter yang ditentukan oleh fungsi. Fungsi yang ditentukan oleh pengembang dapat menerima sejumlah parameter (sesuai dengan dokumentasi Netscape, hingga 255) tanpa melakukan kesalahan. Setiap parameter yang hilang akan diteruskan ke fungsi sebagai tidak ditentukan, dan fungsi yang berlebihan akan diabaikan.
Simulasi fungsi berlebih
Gunakan objek Argumen untuk menentukan jumlah parameter yang diteruskan ke fungsi, dan kemudian simulasikan fungsi berlebih:
function doAdd () {if (arguments.length == 1) {waspada (argumen [0] + 5);} else if (arguments.length == 2) {waspada (argumen [0] + argumen [1]);}}Doadd (10); // output "15"
Doadd (40, 20); // output "60"
Ketika hanya ada satu parameter, fungsi doAdd () menambahkan 5 ke parameter. Jika ada dua parameter, dua parameter ditambahkan untuk mengembalikan jumlah mereka. Jadi, Doadd (10) output "15", sementara Doadd (40, 20) mengeluarkan "60".
Meskipun tidak sebagus kelebihan beban, itu cukup untuk menghindari keterbatasan ecmascript ini.