Exploration de la syntaxe de l'encapsulation JavaScript dans jQuery
Lors de l'examen du code source de jQuery 1.4, on peut rencontrer la syntaxe d'encapsulation suivante :
(function( window, undefined ) { //All the JQuery code here ... })(window);
Cette syntaxe soulève des questions sur le but de la variable "undefined" et l'apparition répétée de "fenêtre."
La signification de "indéfini"
La variable "indéfinie" entre parenthèses n'est pas un mot-clé réservé. Il s’agit plutôt d’une variable normale à laquelle une nouvelle valeur peut être attribuée. Dans ce cas, jQuery définit « undéfini » égal à « undéfini » pour garantir que la variable globale « non définie » reste vraiment indéfinie.
La signification de « fenêtre »
La variable "window" fait référence à l'objet JavaScript global. En passant "window" comme argument à la fonction anonyme, jQuery crée une référence locale à l'objet global. Cette référence locale améliore les performances.
Lorsque JavaScript recherche une variable, il vérifie d'abord la portée locale. Si la variable n'est pas trouvée localement, la recherche continue jusqu'à la portée suivante, et ainsi de suite, jusqu'à ce que la portée globale soit atteinte. En créant une référence locale à l'objet global, JavaScript peut localiser rapidement « fenêtre » sans avoir à rechercher dans toutes les étendues.
Cette optimisation, telle que décrite par Nicholas C. Zakas dans son article « Accélérez votre JavaScript ," améliore considérablement la vitesse d'exécution de la bibliothèque jQuery.
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!