notes d'étude js-ES6 -Iterator

1, marcheur (l'itérateur) est une interface qui fournit un mécanisme unique pour l'accès à une variété de structures de données différentes. Toute structure de données tant que le déploiement Interface itérateur pour terminer l'opération de traversée (à savoir, traitée séquentiellement tous les membres de la structure de données).

2, le rôle itérateur a trois: une pour les différentes structures de données, pour fournir une unifié, une interface facile d'accès, le deuxième est de faire des membres de la structure de données peuvent être agencées dans un certain ordre, le troisième est ES6 créé une nouvelle traversal commande du for...ofcycle, l' interface Iterator est principalement pour la for...ofconsommation.

3, dans ES6, une structure de données natif comprend itérateur interface (tels que des réseaux), à savoir sans aucun traitement, peut être une for...ofboucle à travers, et d' autres non (comme objet). La raison en est que ces structures de données natives déployées Symbol.iteratorpropriétés (voir ci - dessous), un certain nombre de structures de données supplémentaires non. Ceux qui ont déployé la Symbol.iteratorstructure de données d'attribut, appelé le déploiement d' une interface traversal. Appelez cette interface, il retournera un objet visiteur.

4, en ES6, il existe trois catégories de structures de données natives interface iterator comprend: tableau, quelques-uns des tableaux ressemblant à des objets, des structures Set et carte.

5, un exemple d'ajout d'interface de l'objet itérateur.

laisser obj = { 
  données: [ 'bonjour', 'Monde' ], 
  [Symbol.iterator] () { 
    const auto = ce ; 
    laissez index = 0 ;
    retour { 
      suivant () { 
        si (indice < self.data.length) {
           retour { 
            valeur: self.data [index ++ ], 
            fait: faux 
          }; 
        } Autre {
           retour {valeur: non défini, fait: vrai }; 
        } 
      } 
    }; 
  }
};

6, ce qui suit est un tableau d'objet en forme de réseau appelle Symbol.iteratorexemple du procédé.

laisser itérables = {
   0: 'a' ,
   1: 'b' ,
   2: 'c' , 
  longueur: 3 , 
  [Symbol.iterator]: Array.prototype [Symbol.iterator] 
}; 
pour (point de laisser itérables) { 
  console.log (point); // 'a', 'b', 'c' 
}

Notez que les objets ordinaires de déployer un éventail de Symbol.iteratorméthodes, il n'y a pas d' effet.

7, il existe des occasions appellent itérateur l' interface par défaut ( par exemple la Symbol.iteratorméthode), ce qui suit sera introduit en plus du for...ofcycle il existe plusieurs autres occasions.

  • affectation déconstruction
  • évoluée (...)
  • rendement * _yield * derrière avec une structure traversable, il appelle à traverser la structure d'interface.
  • En raison de itérer appels traverse l'interface, de sorte que toutes les occasions d'accepter des tableaux comme paramètres, en fait, appel

8, un objet en forme de corde est un tableau, ayant également une interface itérateur native.

9, en plus de l'objet traversant nextprocédé, il peut aussi avoir des returnprocédés et throwméthodes. Si vous écrivez votre propre fonction de génération d'objet visiteur, il nextdoit être déployé, des returnméthodes, et throwsi la méthode de déploiement est facultative.

Je suppose que tu aimes

Origine www.cnblogs.com/pwindy/p/12635258.html
conseillé
Classement