Rumah >hujung hadapan web >tutorial js >Penutupan dan melaksanakan javascript pada beban halaman

Penutupan dan melaksanakan javascript pada beban halaman

Lisa Kudrow
Lisa Kudrowasal
2025-03-10 00:59:08899semak imbas

Closures and executing JavaScript on page load

Jawatan ini memperluaskan teknik yang diterbitkan sebelum ini untuk melaksanakan kod JavaScript selepas laman web selesai memuatkan. Kod teras menggunakan penutupan JavaScript:

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

Fungsi

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

Penutupan adalah alat yang kuat tetapi memerlukan pemahaman. Eksplorasi lanjut disyorkan (lihat artikel Wikipedia yang dikaitkan dalam jawatan asal).

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn