Les scénarios d'application de fermeture incluent : 1. Appel SetTimeout à l'aide d'une référence de fonction ; 2. Remplacer les variables globales par une petite portée ; 3. Méthodes publiques avec accès aux variables privées et aux fonctions privées.
Les variables locales à l'intérieur de la fonction ne sont pas accessibles depuis l'extérieur de la fonction, mais les fonctions à l'intérieur de la fonction peuvent accéder aux variables locales au sein de cette fonction, donc un accès externe à la fonction est obtenu grâce à des fermetures de variables locales à l'intérieur de la fonction. Cependant, il peut facilement provoquer des fuites de mémoire et doit être utilisé avec prudence.
Scénarios d'utilisation des fermetures :
1], appel setTimeout à l'aide de la méthode de référence de fonction
Le premier paramètre de setTimeout est généralement une fonction à utiliser exécuté, le deuxième paramètre est un temps de retard.
Si un morceau de code veut être appelé via setTimeout, alors il doit passer une référence à un objet fonction comme premier paramètre, mais la référence à cet objet fonction ne peut pas fournir de paramètres pour l'objet qui sera retardé. À ce stade, vous pouvez appeler une autre fonction pour renvoyer l'appel d'une fonction interne et transmettre la référence de cet objet de fonction interne à la fonction setTimeout. Les paramètres requis lors de l'exécution de la fonction interne lui sont transmis lors de l'appel de la fonction externe. . setTimeout est utilisé lors de l'exécution de la fonction interne. Il n'est pas nécessaire de transmettre des paramètres car la fonction interne peut toujours protéger contre la falsification des paramètres fournis lorsque la fonction externe est appelée.
2], petite portée au lieu de variables globales
3], méthode privilégiée pour accéder aux données privées variables ?
Méthodes privilégiées : méthodes publiques qui ont accès aux variables privées et aux fonctions privées
Les variables privées incluent :
1), les variables locales
2) Paramètres de la fonction
3) Autres fonctions (fermetures) définies à l'intérieur de la fonction
Deux sont définies dans le constructeur du code ci-dessus Méthodes privilégiées : getName(), setName(), ces deux méthodes sont accessibles via l'objet, et toutes deux ont accès au nom de la variable privée, mais il n'existe aucune méthode pour accéder au nom en dehors du constructeur Person. Puisque ces deux méthodes sont définies à l'intérieur de la fonction, le nom est accessible via la chaîne de portée comme fermeture
Tutoriel recommandé : "Tutoriel JS"
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!