


Perbincangan ringkas tentang penutupan dalam kemahiran js_javascript
Pertama, mari lihat sekeping kod:
111
222
333
var a=document.getElementsByTagName("a");
fungsi b(){
untuk(var i=0;i
makluman(i);
}
}
}
Mengikut niat asal reka bentuk kami, mengklik pada teg harus memaparkan nombor siri teg dengan sewajarnya, iaitu mengklik pada yang pertama a akan muncul 0, mengklik pada yang kedua akan muncul 1 ... Tetapi sebenarnya ia selalu muncul sebagai bilangan tag. Masalah ini telah menyusahkan saya untuk masa yang lama Saya telah merujuk banyak maklumat dan buku rujukan dalam talian, dan kebanyakannya adalah palsu Saya percaya bahawa ramai pelajar tidak memahami sebab-sebabnya . Jika terdapat sebarang ketidaksesuaian, , sila tegur dan betulkan saya.
Dari pemahaman peribadi saya, sebab mengapa fungsi di atas gagal mencapai tujuannya ialah fungsi pemprosesan acara terikat kepada pembolehubah i, dan fungsi pemprosesan acara ditetapkan kepada onclick, yang bermaksud ia hanya diaktifkan apabila tag a diklik. Fungsi ini akan dipanggil, secara logiknya, fungsi(){alert(i);} dalam gelung for mudah sebenarnya tidak dilaksanakan, dan apabila kita mengklik label, gelung for telah pun Selepas pelaksanaan selesai, nilai i pada masa ini ialah nilai akhir bagi gelung for. Pemahaman mudah ialah nilai i tergolong dalam fungsi b, dan nilai i yang kita perlukan ialah nilai yang dihantar ke dalam fungsi pemprosesan acara dalam masa nyata. Jadi adakah ada cara untuk mencapai niat reka bentuk asal kami? Pelajar pintar mungkin meneka bahawa ia adalah untuk menggunakan penutupan.
Mari kita lihat sekeping kod yang lain:
var a=document.getElementsByTagName("a");
fungsi b(){
untuk(var i=0;i
fungsi kembali(){
makluman(j);
}
}(i);
}
}
b();
Melaksanakan kod di atas, anda boleh mendapati bahawa fungsi yang kami mahukan telah dilaksanakan, iaitu, mengklik mana-mana label akan muncul nombor siri di mana label terletak. Mengenai kod di atas, saya percaya ramai pelajar telah melihat banyak versi yang serupa, tetapi mengapa kita boleh mencapai fungsi yang kita perlukan dengan melakukan ini. Ini hanyalah pendapat peribadi saya.
Intipati pemahaman kod di atas ialah pemahaman pembolehubah i. Dalam kod ini, fungsi dijalankan ke gelung for dan mencari fungsi yang dipanggil serta-merta Pada masa ini, nilai pembolehubah masa nyata dihantar ke fungsi yang dipanggil serta-merta, dan fungsi pemprosesan acara juga disimpan nilai pembolehubah i masa nyata.
Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang dalam memahami penutupan js.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

Dalam C++, penutupan ialah ungkapan lambda yang boleh mengakses pembolehubah luaran. Untuk membuat penutupan, tangkap pembolehubah luar dalam ungkapan lambda. Penutupan memberikan kelebihan seperti kebolehgunaan semula, penyembunyian maklumat dan penilaian malas. Ia berguna dalam situasi dunia sebenar seperti pengendali acara, di mana penutupan masih boleh mengakses pembolehubah luar walaupun ia dimusnahkan.

Ungkapan C++ Lambda menyokong penutupan, yang menyimpan pembolehubah skop fungsi dan menjadikannya boleh diakses oleh fungsi. Sintaks ialah [capture-list](parameters)->return-type{function-body}. capture-list mentakrifkan pembolehubah untuk ditangkap Anda boleh menggunakan [=] untuk menangkap semua pembolehubah tempatan mengikut nilai, [&] untuk menangkap semua pembolehubah tempatan melalui rujukan, atau [variable1, variable2,...] untuk menangkap pembolehubah tertentu. Ungkapan Lambda hanya boleh mengakses pembolehubah yang ditangkap tetapi tidak boleh mengubah suai nilai asal.

Penutupan ialah fungsi bersarang yang boleh mengakses pembolehubah dalam skop fungsi luar Kelebihannya termasuk pengkapsulan data, pengekalan keadaan dan fleksibiliti. Kelemahan termasuk penggunaan memori, kesan prestasi dan kerumitan penyahpepijatan. Selain itu, penutupan boleh mencipta fungsi tanpa nama dan menyerahkannya kepada fungsi lain sebagai panggilan balik atau hujah.

Tajuk: Kebocoran memori disebabkan oleh penutupan dan penyelesaian Pengenalan: Penutupan ialah konsep yang sangat biasa dalam JavaScript, yang membenarkan fungsi dalaman mengakses pembolehubah fungsi luaran. Walau bagaimanapun, penutupan boleh menyebabkan kebocoran memori jika digunakan secara tidak betul. Artikel ini akan meneroka masalah kebocoran memori yang disebabkan oleh penutupan dan menyediakan penyelesaian serta contoh kod khusus. 1. Kebocoran memori disebabkan oleh penutupan Ciri penutupan ialah fungsi dalaman boleh mengakses pembolehubah fungsi luaran, yang bermaksud pembolehubah yang dirujuk dalam penutupan tidak akan dikumpul sampah. Jika digunakan secara tidak betul,

Kesan penunjuk fungsi dan penutupan pada prestasi Go adalah seperti berikut: Penunjuk fungsi: Lebih perlahan sedikit daripada panggilan langsung, tetapi meningkatkan kebolehbacaan dan kebolehgunaan semula. Penutupan: Biasanya lebih perlahan, tetapi merangkumi data dan tingkah laku. Kes praktikal: Penunjuk fungsi boleh mengoptimumkan algoritma pengisihan dan penutupan boleh mencipta pengendali acara, tetapi ia akan membawa kerugian prestasi.

Hubungan antara js dan vue: 1. JS sebagai asas pembangunan Web; 2. Kebangkitan Vue.js sebagai rangka kerja hadapan 3. Hubungan pelengkap antara JS dan Vue; Vue.

Ya, kesederhanaan dan kebolehbacaan kod boleh dioptimumkan melalui panggilan berantai dan penutupan: panggilan berantai memaut fungsi panggilan ke antara muka yang lancar. Penutupan mewujudkan blok kod yang boleh digunakan semula dan pembolehubah akses di luar fungsi.
