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

Fermetures et exécuter JavaScript sur chargement

Lisa Kudrow
Lisa Kudroworiginal
2025-03-10 00:59:08899parcourir

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 */ 
});

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));

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:
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