-1
votes

Fonction d'itérateur par défaut pour la boucle

Considérez cette fonction de générateur simple définie sur objet.pototype code>: xxx pré>

bien sûr, il pourrait être utilisé comme ceci: p>

for (const [ key, value ] of object);


0 commentaires

3 Réponses :


2
votes
   Object.prototoype[Symbol.iterator] = function* pairs() {
     //...
   };
But be aware that this could cause side effects everywhere. This shouldn't be used in production (or at least, on your own risk ;)).

0 commentaires

2
votes

mettre le générateur sur objet.pototype [symbole.itéatère] code>:

p>

Object.prototype[Symbol.iterator] = function* pairs() {
  for (const key in this) yield [ key, this[key] ];
};
const object = { goats_teleported: 42, foo: 'fooval' };

for (const [ k, v ] of object) {
  console.log(k, v);
}


2 commentaires

Je suppose que itérateur ne peut pas être défini avec objet.defineProperty , oui?


Je ne pense pas, bien que vous puissiez utiliser Objet.defineProperties



1
votes

in ES6, vous pouvez utiliser symbole.itéator pour définir l'itérateur personnalisé pour le prototype. Voir ici


0 commentaires