Berikut adalah fungsi tanpa nama JS Apakah perbezaan antara ketiga-tiga bentuk ini?
// 形式1
(function(a){
console.log(a);
})(33)
// 形式2
!function(){
console.log(2222222222)
}()
// 形式3
(function(a){
console.log(a);
}(100))
Sebenarnya tiada perbezaan penting antara ketiga-tiga kaedah penulisan ini semuanya adalah untuk fungsi pengkompil (penterjemah)(a){ console.log(a) } dan () untuk dilaksanakan secara keseluruhan. Ia mungkin lebih kepada perbezaan dalam tabiat Secara peribadi, saya lebih suka yang pertama, kerana ia masuk akal secara logik. Sesetengah orang menyukai kaedah kedua, menggunakan () untuk menyertakan keseluruhan panggilan fungsi Ini boleh menunjukkan secara langsung bahawa kod ini adalah keseluruhan. Saya mendengar bahawa orang asing suka menggunakannya! Atau batal
Yang pertama ialah cara biasa untuk melaksanakan fungsi sendiri Apa yang dibungkus dalam kurungan ialah badan fungsi itu sendiri, yang bermaksud bahawa definisi fungsi dilaksanakan dan fungsi dikembalikan dalam dan fungsi itu dilaksanakan.
Jenis kedua dan ketiga sebenarnya sama Mereka menggunakan
!
和括号
untuk "membungkus" badan fungsi dan menambah bahagian parameter, yang bermaksud melaksanakan blok kod ini, nama fungsi itu boleh ditinggalkan.Perbezaan antara kaedah kedua dan ketiga ialah kaedah pertama tidak mempunyai parameter dan mengembalikan nilai Boolean hasil pelaksanaan fungsi yang dinafikan, manakala kaedah kedua mempunyai parameter dan mengembalikan nilai pulangan fungsi secara lalai.
Yang pertama lari paling laju
Dua yang terakhir tampan