pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator

per.mozilla.org/favicon.ico" />

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Symbol.iterator

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Die statische Dateneigenschaft Symbol.iterator repräsentiert das wohlbekannte Symbol Symbol.iterator. Das iterierbare Protokoll sucht mit diesem Symbol nach der Methode, die den Iterator für ein Objekt zurückgibt. Damit ein Objekt iterierbar ist, muss es einen [Symbol.iterator]-Schlüssel haben.

Probieren Sie es aus

const iterable = {};

iterable[Symbol.iterator] = function* () {
  yield 1;
  yield 2;
  yield 3;
};

console.log([...iterable]);
// Expected output: Array [1, 2, 3]

Wert

Das wohlbekannte Symbol Symbol.iterator.

Eigenschaften von Symbol.iterator
Schreibbarnein
Aufzählbarnein
Konfigurierbarnein

Beschreibung

Immer wenn ein Objekt iteriert werden muss (wie zu Beginn einer for...of Schleife), wird seine Methode [Symbol.iterator]() ohne Argumente aufgerufen, und der zurückgegebene Iterator wird verwendet, um die zu iterierenden Werte zu erhalten.

Einige eingebaute Typen haben ein Standardverhalten für die Iteration, während andere Typen (wie Object) dies nicht haben. Einige eingebaute Typen mit einer [Symbol.iterator]()-Methode sind:

Siehe auch Iterationsprotokolle für weitere Informationen.

Beispiele

Benutzerdefinierte Iterables

Wir können unsere eigenen Iterables wie folgt erstellen:

js
const myIterable = {};
myIterable[Symbol.iterator] = function* () {
  yield 1;
  yield 2;
  yield 3;
};
[...myIterable]; // [1, 2, 3]

Oder Iterables können direkt innerhalb einer Klasse oder eines Objekts unter Verwendung einer berechneten Eigenschaft definiert werden:

js
class Foo {
  *[Symbol.iterator]() {
    yield 1;
    yield 2;
    yield 3;
  }
}

const someObj = {
  *[Symbol.iterator]() {
    yield "a";
    yield "b";
  },
};

console.log(...new Foo()); // 1, 2, 3
console.log(...someObj); // 'a', 'b'

Nicht wohlgeformte Iterables

Wenn die [Symbol.iterator]()-Methode eines Iterables kein Iterator-Objekt zurückgibt, ist es ein nicht wohlgeformtes Iterable. Die Verwendung dessen wird wahrscheinlich zu Laufzeitausnahmen oder fehlerhaftem Verhalten führen:

js
const nonWellFormedIterable = {};
nonWellFormedIterable[Symbol.iterator] = () => 1;
[...nonWellFormedIterable]; // TypeError: [Symbol.iterator]() returned a non-object value

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-symbol.iterator

Browser-Kompatibilität

Siehe auch

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy