Rumah > Artikel > hujung hadapan web > Penutupan dalam JavaScript
Hai,
Dalam siaran ini, Mari belajar Penutupan.
Penutupan adalah penting dalam JavaScript kerana ia membenarkan fungsi mengakses pembolehubah daripada skop induknya, walaupun selepas fungsi induk itu ditutup. Ini penting untuk fungsi yang perlu mengingat data dari semasa ke semasa, seperti dalam fungsi panggil balik atau mengekalkan keadaan. Satu perkara yang perlu diingat di sini ialah pembolehubah skop induk yang tidak digunakan ialah sampah yang dikumpul.
Takrif:
Penutupan ialah gabungan fungsi yang digabungkan bersama (tertutup) dengan rujukan kepada keadaan sekelilingnya (persekitaran leksikal). Dengan kata lain, penutupan memberikan akses fungsi kepada skop luarnya. Dalam JavaScript, penutupan dibuat setiap kali fungsi dicipta, pada masa penciptaan fungsi.
Pada asasnya penutupan mempunyai akses kepada:
Mata Bonus
Skop Leksikal : Fungsi dalaman mempunyai akses kepada pembolehubah dalam skop luar.
Mari kita fahami dengan contoh.
Contoh
S> Tulis fungsi createCounter. Ia harus menerima init integer awal. Ia sepatutnya mengembalikan objek dengan tiga fungsi.
Tiga fungsi tersebut ialah:
kenaikan() meningkatkan nilai semasa sebanyak 1 dan kemudian mengembalikannya.
decrement() mengurangkan nilai semasa sebanyak 1 dan kemudian mengembalikannya.
reset() menetapkan nilai semasa kepada init dan kemudian mengembalikannya.
Lihat kod komen di bawah untuk contoh init = 5 kes.
Penyelesaian
var createCounter = function(init) { const INITIAL_VALUE = init; return { increment: () => ++init, decrement: () => --init, reset: () => init=INITIAL_VALUE, } }; /** * const counter = createCounter(5) * counter.increment(); // 6 * counter.reset(); // 5 * counter.decrement(); // 4 */
Penjelasan:
Jika anda mempunyai sebarang keraguan atau cadangan, sila tambah dalam ulasan.
Soalan ini diambil daripada leetcode. Pautan
Akhir sekali perlu diingat bahawa pembolehubah yang diisytiharkan secara global akan dapat diakses oleh setiap penutupan dalam skrip.
Saya harap sekarang anda mempunyai pemahaman yang baik tentang penutupan. Terima kasih kerana membaca
Atas ialah kandungan terperinci Penutupan dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!