Dalam JavaScript, apabila fungsi dalaman dipanggil di luar fungsi luaran yang mengandungi fungsi dalaman, penutupan terbentuk ialah kawasan tindanan yang tidak melepaskan sumber apabila fungsi itu kembali , penutupan berfungsi sebagai rujukan kepada pembolehubah fungsi dan diaktifkan apabila fungsi itu kembali.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.
Penjelasan rasmi penutupan ialah: ungkapan (biasanya fungsi) dengan banyak pembolehubah dan persekitaran terikat kepada pembolehubah ini, jadi Pembolehubah ini juga merupakan sebahagian daripada ungkapan tersebut.
Ciri-ciri penutupan:
1. Sebagai rujukan kepada pembolehubah fungsi, ia diaktifkan apabila fungsi itu kembali.
2. Penutupan ialah kawasan tindanan yang tidak melepaskan sumber apabila fungsi kembali.
Ringkasnya, JavaScript membenarkan penggunaan fungsi dalaman---iaitu, definisi fungsi dan ungkapan fungsi terletak dalam badan fungsi fungsi lain. Tambahan pula, fungsi dalaman ini mempunyai akses kepada semua pembolehubah tempatan, parameter dan fungsi dalaman lain yang diisytiharkan dalam fungsi luar di mana ia wujud.
Penutupan terbentuk apabila salah satu fungsi dalaman ini dipanggil di luar fungsi luar yang mengandunginya.
function closure(){ var str = "I'm a part variable."; return function(){ alert(str); } } var fObj = closure(); fObj();
Dalam kod di atas, str ialah pembolehubah setempat yang ditakrifkan dalam penutupan fungsi Jika str tidak lagi boleh diakses selepas panggilan fungsi penutupan selesai, str akan dikeluarkan selepas pelaksanaan fungsi selesai. .
Walau bagaimanapun, kerana penutupan fungsi mengembalikan fungsi dalaman, dan fungsi yang dikembalikan merujuk kepada pembolehubah str, str boleh dirujuk selepas fungsi penutupan dilaksanakan, jadi sumber yang diduduki oleh str tidak akan dikitar semula. Penutupan ini membentuk penutupan.
Cadangan berkaitan: Tutorial pembelajaran javascript
Atas ialah kandungan terperinci Bilakah javascript membentuk penutupan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!