Considérez cette fonction de générateur simple définie sur bien sûr, il pourrait être utilisé comme ceci: p> objet.pototype code>:
for (const [ key, value ] of object);
3 Réponses :
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 ;)).
mettre le générateur sur p> objet.pototype [symbole.itéatère] code>:
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);
}
Je suppose que itérateur ne peut pas être défini avec objet.defineProperty code>, oui?
Je ne pense pas, bien que vous puissiez utiliser Objet.defineProperties code>
in ES6, vous pouvez utiliser symbole.itéator code> pour définir l'itérateur personnalisé pour le prototype.
Voir ici P>