Pada artikel sebelumnya, kami membahas parameter default di JavaScript. Dalam artikel ini, kita akan membahas objek parameter argumen dari JavaScript.
Bagaimana kita melakukan pemrosesan yang berbeda berdasarkan parameter yang dilewati dalam suatu fungsi dalam contoh berikut?
Salinan kode adalah sebagai berikut:
fungsi addall () {
// Apa yang kita lakukan di sini?
}
// harus kembali 6
Addall (1, 2, 3);
// harus kembali 10
Addall (1, 2, 3, 4);
Untungnya, JavaScript memiliki objek argumen yang dapat menangani situasi di atas. Objek argumen adalah objek array. Jika Anda ingin mengetahui detail objek argumen, silakan klik di sini. Kami menggunakan objek argumen untuk mengubah contoh di atas:
Salinan kode adalah sebagai berikut:
fungsi addall () {
var sum = 0;
untuk (var i = 0; i <arguments.length; i ++) {
jumlah += argumen [i];
}
jumlah pengembalian;
}
// pengembalian 6
Addall (1, 2, 3);
// pengembalian 10
Addall (1, 2, 3, 4);
Kami telah mengatakan di atas bahwa objek argumen adalah objek array kelas. Mari kita mengujinya di bawah:
Salinan kode adalah sebagai berikut:
function getName () {
console.log (array.isarray (argumen));
}
// akan menghasilkan false
getName ("Benjamin");
Hasil tes di atas dapat dilihat:
Ini bukan objek array, jadi apa perbedaan antara itu dan objek array? Silakan klik di sini untuk detailnya.
Mengeksekusi contoh berikut ini akan melempar kesalahan:
Salinan kode adalah sebagai berikut:
function sortArgs () {
// TipeError yang Tak Terbang: Tidak Ditentukan Bukan Fungsi
disortir = argumen.sort ()
kembali disortir;
}
sortArgs ();
Kita dapat mengubah objek array menjadi objek array seperti berikut:
Salinan kode adalah sebagai berikut:
function sortArgs () {
// Konversi argumen objek menjadi array nyata
var args = [] .slice.call (argumen);
// Sekarang ini akan berhasil!
disortir = args.sort ()
kembali disortir;
}
// akan output [1, 2, 3]
console.log (sortArgs (1,3,2));
Jika Anda merasa artikel ini bermanfaat bagi Anda, saya berharap dapat memberikannya kepada lebih banyak orang yang membutuhkan. Jika ada artikel yang tidak pantas, silakan tinggalkan pesan untuk memperbaikinya.