Rumah > Soal Jawab > teks badan
Saya boleh memahami watak pengembangan untuk menyalin tatasusunan, tetapi saya tidak faham yang digunakan untuk menghantar parameter kepada fungsi
Seperti di atas, mengapakah parameter fungsi boleh menerima beberapa parameter selepas menambah operator pengembangan?
fn(...arg)要怎么理解
阿神2017-07-05 10:43:47
Apabila mentakrifkan fungsi, ini harus dipanggil parameter yang tinggal.
Jika parameter terakhir yang dinamakan fungsi itu diawali dengan..., maka apabila fungsi dipanggil, parameter formal akan menjadi tatasusunan, dan elemen dalam tatasusunan akan menjadi nilai parameter sebenar tambahan yang diluluskan kepada fungsi.
Lihat MDN untuk penjelasan terperinci:
https://developer.mozilla.org...
迷茫2017-07-05 10:43:47
Boleh tengok chestnut ni dulu
The...arg di sini sebenarnya mendapat nilai hujah, jadi kaedah anda boleh ditulis semula seperti ini
function fn(){
var arg = [...arguments];
console.log(...arg);
}
天蓬老师2017-07-05 10:43:47
Penjelasan rasmi:
Ikat parameter mengekor pada tatasusunan.
Digunakan dalam parameter fungsi, ia menukar parameter bermula di sini kepada tatasusunan.
fn(...args)//所有参数变为数组
fn(a, ...args)//从第二个参数变为数组
伊谢尔伦2017-07-05 10:43:47
Parameter formal fungsi akan disimpan dalam tatasusunan kelas argumen Operator... boleh menukar tatasusunan kelas kepada tatasusunan
淡淡烟草味2017-07-05 10:43:47
Anda boleh faham bahawa
fn(...arg) meletakkan semua parameter parameter dalam tatasusunan arg Tidak kira berapa banyak parameter yang anda lalui apabila anda memanggil fungsi ini, ia boleh diperolehi oleh arg.
巴扎黑2017-07-05 10:43:47
Parameter fungsi boleh diperolehi melalui argumen objek seperti tatasusunan Sebarang berbilang parameter yang anda masukkan pada dasarnya wujud sebagai objek seperti tatasusunan di dalam fungsi, jadi menambah operator hamparan hanya menukar objek seperti tatasusunan ini menjadi jujukan parameter.