Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menggunakan penutupan javascript
Penggunaan Penutupan JavaScript
JavaScript ialah bahasa pengaturcaraan yang digunakan secara meluas yang boleh digunakan untuk membangunkan pelbagai jenis aplikasi. Antaranya, penutupan adalah ciri penting JavaScript, yang memainkan peranan penting dalam pengaturcaraan JavaScript. Artikel ini akan memperkenalkan penggunaan penutupan JavaScript secara terperinci.
Apakah itu penutupan JavaScript?
Sebelum memperkenalkan penggunaan penutupan JavaScript, kita perlu terlebih dahulu memahami apa itu penutupan JavaScript. Ringkasnya, penutupan merujuk kepada fungsi yang ditakrifkan di dalam fungsi, dan fungsi itu boleh mengakses pembolehubah dan parameter fungsi luaran. Fungsi dalaman ini membentuk persekitaran tertutup supaya pembolehubah dan parameter dalam fungsi luaran tidak akan dimusnahkan selepas fungsi tersebut dilaksanakan.
Penggunaan penutupan JavaScript
Di bawah, kami akan memperkenalkan beberapa penggunaan penutupan JavaScript:
Dengan menggunakan penutupan, kita boleh merangkum pembolehubah dan fungsi dalam skop peribadi, dengan itu mencipta fungsi yang serupa dengan pembolehubah persendirian. Dengan cara ini, kod luaran tidak boleh mengakses terus pembolehubah dan fungsi ini, sekali gus memastikan keselamatan dan kestabilan program.
Sebagai contoh, kita boleh mentakrifkan fungsi penutupan untuk merangkum pembolehubah:
function counter() { var count = 0; return function() { count++; console.log(count); } } var c = counter(); c(); // 输出1 c(); // 输出2 c(); // 输出3
Dalam kod di atas, kita mentakrifkan pembilang fungsi penutupan dan mentakrifkannya di dalam fungsi penutupan Kiraan pembolehubah dan mengembalikan fungsi yang boleh mengakses kiraan pembolehubah luaran. Dengan cara ini, kami mencipta kiraan pembolehubah peribadi yang tidak boleh diakses secara langsung oleh kod luaran Nilai kaunter hanya boleh diakses dengan memanggil fungsi yang dikembalikan.
Dalam beberapa pengiraan yang memakan masa, kami ingin menyimpan cache hasil fungsi untuk meningkatkan kecekapan pelaksanaan fungsi. Dengan menggunakan penutupan, kita boleh menyimpan hasil dalam pembolehubah di dalam penutupan dan mengembalikan nilai tersebut secara langsung apabila fungsi dipanggil seterusnya, dengan itu mengelakkan pengiraan berganda.
Sebagai contoh, kita boleh mentakrifkan fungsi penutupan untuk mengira jujukan Fibonacci:
function fibonacci() { var cache = {}; return function(n) { if (n in cache) { return cache[n]; } if (n <= 1) { return n; } var result = fibonacci(n-1) + fibonacci(n-2); cache[n] = result; return result; } } var fib = fibonacci(); console.log(fib(10)); // 输出55 console.log(fib(20)); // 输出6765 console.log(fib(30)); // 输出832040
Dalam kod di atas, kami mentakrifkan fungsi penutupan Fibonacci untuk mengira urutan nombor itu. Objek cache ditakrifkan di dalam fungsi untuk menyimpan hasil cache Setiap kali fungsi dipanggil, ia mula-mula menyemak sama ada hasilnya telah dicache, jika tidak, nilai akan dikira dan hasilnya disimpan dalam cache , dan akhirnya mengembalikan hasilnya.
Dalam untuk gelung, kerana skop pembolehubah dalam JavaScript berada pada tahap fungsi, iaitu, ditakrifkan dalam gelung Pembolehubah boleh dilihat sepanjang fungsi. Ini membawa kepada masalah perkongsian pembolehubah dalam penutupan apabila menggunakan fungsi tanpa nama dalam gelung. Dengan menggunakan penutupan kita boleh mengelakkan masalah ini.
Sebagai contoh, kami boleh mentakrifkan fungsi penutupan untuk mengendalikan peristiwa klik dalam gelung:
for (var i = 1; i <= 5; i++) { (function(j) { document.getElementById('btn-'+j).addEventListener('click', function() { console.log(j); }); })(i); }
Dalam kod di atas, kami menggunakan fungsi tanpa nama yang dipanggil serta-merta untuk membuat penutupan . Dalam setiap gelung, pembolehubah i dihantar ke fungsi sebagai parameter, dan pembolehubah baru j dicipta untuk memegang nilai parameter. Dengan cara ini, penutupan yang dibuat dalam setiap gelung akan menjimatkan nilai j dalam skopnya sendiri, mengelakkan masalah perkongsian berubah-ubah.
Ringkasan
Penutupan ialah ciri penting dalam JavaScript Ia membenarkan fungsi untuk mencipta skop peribadi dan menyimpan pembolehubah dan fungsi dalam skop ini, dengan itu meningkatkan keselamatan dan kestabilan program. Dalam artikel ini, kami memperkenalkan penggunaan penutupan JavaScript, termasuk merangkum pembolehubah persendirian, menyimpan cache hasil fungsi dan mengelakkan masalah skop dalam gelung. Saya harap artikel ini dapat membantu anda memahami penutupan JavaScript.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan penutupan javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!