Maison >interface Web >js tutoriel >Comprendre le principe de fermeture de js
Des questions ? Quel est le principe de fermeture de js (javaScript) et quelle est sa fonction ?
1. Définition
Explication officielle : Une fermeture est une expression avec de nombreuses variables et un environnement lié à ces variables (il s'agit généralement d'une fonction ), donc ces variables font également partie de l'expression.
Évidemment, pouah. . . . . Quoi! Les ruraux ne peuvent pas comprendre qu’on brise les portes ! ! !
La compréhension de l'éditeur est donc la suivante : **** est une fonction définie dans une fonction et accessible en externe. (Dans des circonstances normales, nous ne pouvons pas accéder aux fonctions locales ) C'est un peu comme enlever son pantalon et péter. C'est inutile, mais ce n'est pas inutile. . Les fermetures ont définitivement leur rôle.
Fonction : 1. Il peut réduire les objets des variables globales et empêcher les variables globales d'être trop grandes dans le passé et rendant difficile la maintenance
2. Empêcher les variables modifiables, car les variables internes sont inaccessibles de l'extérieur et ne peuvent pas être modifiées. Sécurité
3. Lire les variables à l'intérieur de la fonction L'autre est de conserver les valeurs de ces variables en mémoire.
2. Exemple : (code js)
1. La particularité du langage Javascript est que la fonction globale peut être lue directement à l'intérieur. la variable de fonction.
var n=999; function f1(){ alert(n); } f1(); // 999
2. En revanche, les variables locales au sein de la fonction ne peuvent pas être lues en dehors de la fonction.
function f1(){ var n=999; } alert(n); // error
Il y a une chose à noter ici Lorsque vous déclarez des variables à l'intérieur d'une fonction, vous devez utiliser la commande var. Si vous ne l'utilisez pas, vous déclarez en fait une variable globale !
function f1(){ n=999; } f1(); alert(n); // 999
** ***Comment lire les variables locales de l'extérieur ?
Nous avons parfois besoin d'obtenir des variables locales au sein d'une fonction. Cependant, comme mentionné précédemment, cela n’est pas possible dans des circonstances normales et ne peut être réalisé que grâce à des solutions de contournement.
function f1(){ n=999; function f2(){ alert(n); // 999 } }
3. Notes sur l'utilisation des fermetures
1) Étant donné que les fermetures entraîneront le stockage des variables de la fonction en mémoire, ce qui consomme beaucoup de mémoire, les fermetures ne peuvent pas être abusées, sinon cela entraînera des problèmes de performances sur la page Web. Peut provoquer une fuite de mémoire dans IE. La solution consiste à supprimer toutes les variables locales inutilisées avant de quitter la fonction.
2) La fermeture modifiera la valeur de la variable interne de la fonction parent en dehors de la fonction parent. Par conséquent, si vous utilisez la fonction parent comme objet, la fermeture comme méthode publique et les variables internes comme valeur privée, vous devez faire attention à ne pas
modifier la valeur de la variable à l'intérieur de la fonction parent .
Ce qui précède est la compréhension du principe de fermeture de js. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (. www.php.cn ) !