Rumah >hujung hadapan web >tutorial js >Penutupan dan melaksanakan javascript pada beban halaman
function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } addLoadEvent(nameOfSomeFunctionToRunOnPageLoad); addLoadEvent(function() { /* more code to run on page load */ });Penutupan menggabungkan fungsi dengan persekitaran leksikal sekitarnya (pembolehubah yang boleh diakses). Ini sangat berkuasa di JavaScript. Pertimbangkan contoh ini:
function createAdder(x) { return function(y) { return y + x; } } addThree = createAdder(3); addFour = createAdder(4); document.write('10 + 3 is ' + addThree(10) + '<br>'); document.write('10 + 4 is ' + addFour(10));
Mengembalikan fungsi. Secara kritis, fungsi yang dikembalikan (penutupan) "mengingati" nilai createAdder(x)
dari konteks penciptaannya. x
menambah 3, addThree
menambah 4, menunjukkan pemeliharaan keadaan penutupan. addFour
memanfaatkan penutupan untuk menguruskan pengendali pelbagai addLoadEvent
. Jika window.onload
sudah ditakrifkan, fungsi baru dibungkus, memastikan kedua -dua fungsi sedia ada dan baru dijalankan secara berurutan apabila beban halaman. Ini membolehkan pelbagai panggilan untuk window.onload
, mewujudkan barisan fungsi yang dilaksanakan pada beban halaman. addLoadEvent
Soalan -soalan yang sering ditanya:
Bahagian ini menangani soalan umum mengenai penutupan JavaScript dan pelaksanaan beban halaman, memberikan jawapan ringkas. Bahagian FAQ asal dikekalkan, tetapi diubahsuai untuk kebolehbacaan dan kesimpulan yang lebih baik. Tiada maklumat hilang. Soalan dan jawapannya diumumkan untuk aliran yang lebih baik dan untuk mengelakkan kelebihan.Atas ialah kandungan terperinci Penutupan dan melaksanakan javascript pada beban halaman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!