Maison > interface Web > js tutoriel > Fermetures et exécuter JavaScript sur chargement

Fermetures et exécuter JavaScript sur chargement

Lisa Kudrow
Libérer: 2025-03-10 00:59:08
original
891 Les gens l'ont consulté

Closures and executing JavaScript on page load

Ce message développe une technique précédemment publiée pour exécuter le code JavaScript une fois la page Web terminée. Le code central utilise des fermetures 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 */ 
});
Copier après la connexion

Une fermeture regroupe une fonction avec son environnement lexical environnant (variables accessibles). Ceci est particulièrement puissant en JavaScript. Considérez cet exemple:

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));
Copier après la connexion

createAdder(x) Renvoie une fonction. Surtout, la fonction retournée (une fermeture) "se souvient" de la valeur de x de son contexte de création. addThree ajoute 3, addFour ajoute 4, démontrant la préservation de l'État de la fermeture.

La fonction addLoadEvent exploite les fermetures pour gérer plusieurs gestionnaires window.onload. Si window.onload est déjà défini, la nouvelle fonction est enveloppée, garantissant que les fonctions existantes et nouvelles s'exécutent séquentiellement lors du chargement de la page. Cela permet de chaîner plusieurs appels à addLoadEvent, créant une file d'attente de fonctions exécutées sur le chargement de la page.

Les fermetures sont un outil puissant mais nécessitent une compréhension. Une exploration plus approfondie est recommandée (voir l'article Wikipedia lié dans le post original).

Questions fréquemment posées:

Cette section aborde les questions courantes sur les fermetures JavaScript et l'exécution de la charge de page, en fournissant des réponses concises. La section FAQ d'origine est conservée, mais reformatée pour une amélioration de la lisibilité et de la concision. Aucune information n'est perdue. Les questions et réponses sont paraphrasées pour un meilleur flux et pour éviter la redondance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal