Maison > interface Web > js tutoriel > le corps du texte

Apprenez facilement les fonctions de fermeture Javascript_conseils javascript

WBOY
Libérer: 2016-05-16 15:25:40
original
910 Les gens l'ont consulté

Qu'est-ce qu'une fonction de fermeture ?Quand on commence à apprendre les fermetures, c'est probablement difficile à comprendre pour tout le monde. À en juger par son explication officielle, c'est relativement conceptuel.

Mais on part quand même du sens de la fermeture.
La fermeture signifie qu'une fonction a des variables libres et indépendantes. En d’autres termes, une fonction définie dans une fermeture peut « se souvenir » de l’environnement dans lequel elle a été créée.
Après l’explication officielle, regardons d’abord un exemple simple de comptage.

var c = 0;
function count(){
c++;
}
count();// 1
count();// 2
Copier après la connexion

Cet exemple est implémenté en utilisant des variables globales, mais il y a un problème ici. La variable c est également facilement appelée par d'autres méthodes. À ce stade, la valeur stockée de c peut être modifiée, ce qui rend le décompte invalide. Comment bien gérer ce problème ! Nous penserons à utiliser des variables locales pour le résoudre. Par exemple :
.

function count(){
 var c = 0;
 function add(){
  c++;
 }
 add();
}
count();// c = 1
count();// c = 1
Copier après la connexion

Parce qu'après la création de cette manière, les variables internes n'existent que lorsque la fonction de comptage est créée et exécutée. Après l'exécution, la fonction entière sera supprimée. La capacité d'avoir de la mémoire ne peut pas être obtenue. nous utiliserons des fermetures pour le résoudre. Je tiens à le mentionner à nouveau : fermeture = environnement de fonction

function count(){
  var c = 0;
  function add(){
   c++;
  }
  return add;
}
var ct = count();
ct(); // c = 1
ct(); // c = 2
Copier après la connexion

À l'heure actuelle, nous pouvons utiliser cette fermeture pour compléter la capacité de comptage. ct est une fonction de fermeture, et l'environnement interne est la variable locale c. Ce que nous obtenons ici, ce sont des données internes, qui sont exploitées en externe. la fermeture Quelles autres fonctions cela a-t-il ?

Utilisez des fermetures pour simuler des méthodes privées
C'est un peu comme les méthodes privées ou variables privées de JAVA, qui ne peuvent être exploitées que par vous-même ! Si vous opérez en externe, vous devez définir une méthode publique pour fonctionner
.

var person = (function(){
  var _name = "编程的人";
  var age = 20;
  return {
   add:function(){
     age++;
   },
   jian:function(){
     age--;
   },
   getAge:function() {
     return age;
   },
   getName:function(){
     return _name;
   },
   setName: function (name) {
     _name = name;        
   }
  }
})();
person.add();
var age = person.getAge();
console.log(age)
person.setName("编程的人公众号:bianchengderen")
console.log(person.getName())
Copier après la connexion

Cela devrait être facile à comprendre ici ! Cela ressemble un peu à de la programmation orientée objet. Bien entendu, Javascript présente désormais également les caractéristiques de la programmation orientée objet. Nous l'expliquerons plus tard
. Jusqu'à présent, nous avons utilisé des exemples allant du comptage à la privatisation interne pour illustrer les fermetures. J'espère que tout le monde pourra facilement comprendre le principe. Bien entendu, les fermetures ont d'autres fonctions plus pratiques à utiliser.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à tout le monde dans l'apprentissage de la programmation javascript.

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!