


Analisis peristiwa dan kelebihan dan kekurangan kemahiran js closure_javascript
Pertama kod:
//函数a function a() { var i=0; //函数b function b() { alert(++i); } return b; } //函数c var c = a(); c();
Ciri kod:
1. Fungsi b bersarang di dalam fungsi a;
2. Fungsi a mengembalikan fungsi b.
Apabila fungsi dalaman b fungsi a dalam kod dirujuk oleh pembolehubah c di luar fungsi a, ini dipanggil mencipta penutupan. Kadangkala fungsi b juga boleh dikembalikan oleh fungsi tanpa nama, iaitu fungsi pulangan(){};
Kelebihan: 1. Melindungi keselamatan pembolehubah dalam fungsi dan meningkatkan enkapsulasi 2. Mengekalkan pembolehubah dalam ingatan (menggunakan terlalu banyak akan menjadi kelemahan dan menduduki memori).
Sebab mengapa penutupan menduduki sumber ialah apabila fungsi a tamat, pembolehubah i tidak akan dimusnahkan kerana fungsi a berakhir, kerana pelaksanaan b bergantung pada pembolehubah dalam a.
Tidak sesuai untuk senario: fungsi yang mengembalikan penutupan ialah fungsi yang sangat besar
Rangka kerja tipikal untuk penutupan mestilah jquery.
Ini lebih jelas apabila membuat rangka kerja Sesetengah kaedah dan atribut hanya digunakan dalam proses logik operasi Anda tidak mahu membenarkan pengubahsuaian luaran atribut ini, jadi anda boleh mereka bentuk penutupan untuk hanya menyediakan akses kaedah.
Untuk meringkaskan:
Kelebihan:
1. Kesinambungan logik apabila penutupan digunakan sebagai parameter panggilan fungsi lain, ia menghalang anda daripada melepaskan logik semasa dan menulis logik tambahan secara berasingan.
2. Memudahkan memanggil pembolehubah tempatan konteks.
3. Menguatkan enkapsulasi. Lanjutan titik 2 boleh melindungi pembolehubah.
Kelemahan:
Penutupan mempunyai masalah yang sangat serius, iaitu masalah sisa ingatan ini bukan sahaja kerana ia bermastautin dalam ingatan, tetapi yang lebih penting, penggunaan penutupan yang tidak betul akan menyebabkan penjanaan ingatan tidak sah :
var array = []; function abc() { var foo = function(){ } array.push(foo); return foo; } for(var i = 0 ; i < 10000; i ++) { abc(); } alert(array[0] == array[1]);
var foo = new Function();
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

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.

Dalam era maklumat hari ini, komputer peribadi memainkan peranan penting sebagai alat yang sangat diperlukan dalam kehidupan seharian kita. Sebagai salah satu perisian teras komputer, sistem pengendalian mempengaruhi pengalaman penggunaan dan kecekapan kerja kami. Di pasaran, sistem pengendalian Windows Microsoft sentiasa menduduki kedudukan yang dominan, dan kini orang ramai menghadapi pilihan antara Windows 11 terkini dan Windows 10 lama. Bagi pengguna biasa, apabila memilih sistem pengendalian, mereka tidak hanya melihat nombor versi, tetapi juga memahami kelebihan dan kekurangannya.

Templat: Kebaikan dan Keburukan Templat ialah teknik pengaturcaraan yang berkuasa yang membolehkan anda membuat blok kod yang boleh digunakan semula. Ia menawarkan pelbagai kelebihan, tetapi juga beberapa kelemahan. Kelebihan: Kebolehgunaan Semula Kod: Templat membolehkan anda mencipta kod biasa yang boleh digunakan semula sepanjang aplikasi anda, mengurangkan usaha pertindihan dan penyelenggaraan. Ketekalan: Templat memastikan bahawa coretan kod dilaksanakan dengan cara yang sama di lokasi yang berbeza, meningkatkan ketekalan dan kebolehbacaan kod. Kebolehselenggaraan: Perubahan pada templat ditunjukkan secara serentak dalam semua kod yang menggunakannya, memudahkan penyelenggaraan dan kemas kini. Kecekapan: Templat menjimatkan masa dan usaha kerana anda tidak perlu menulis kod yang sama berulang kali. Fleksibiliti: Templat membolehkan anda membuat blok kod yang boleh dikonfigurasikan yang boleh disesuaikan dengan mudah kepada keperluan aplikasi yang berbeza. kelemahan

JavaServlet ialah kelas Java yang digunakan untuk membina halaman web dinamik dan berfungsi sebagai jambatan antara klien dan pelayan. Prinsip kerja: menerima permintaan, memulakan Servlet, memproses permintaan, menjana respons dan menutup Servlet. Kelebihan: Mudah alih, berskala, selamat dan mudah digunakan. Kelemahan: Overhed, gandingan dan pengurusan negeri. Kes praktikal: Cipta Servlet ringkas untuk memaparkan "Hello, Servlet!"

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.

Pilihan rangka kerja PHP bergantung pada keperluan projek dan kemahiran pembangun: Laravel: kaya dengan ciri dan komuniti aktif, tetapi mempunyai keluk pembelajaran yang curam dan overhed prestasi tinggi. CodeIgniter: ringan dan mudah dipanjangkan, tetapi mempunyai fungsi terhad dan kurang dokumentasi. Symfony: Bermodul, komuniti yang kuat, tetapi kompleks, isu prestasi. ZendFramework: Gred perusahaan, stabil dan boleh dipercayai, tetapi besar dan mahal untuk dilesenkan. Langsing: rangka kerja mikro, pantas, tetapi dengan fungsi terhad dan keluk pembelajaran yang curam.
