A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator below:

Symbol.iterator - JavaScript | MDN

Symbol.iterator

Baseline Widely available

Die statische Dateneigenschaft Symbol.iterator repräsentiert das bekannte Symbol Symbol.iterator. Das iterable Protokoll sucht dieses Symbol für die 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 iterable1 = {};

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

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

Das bekannte Symbol Symbol.iterator.

Schreibbar nein Aufzählbar nein Konfigurierbar nein Beschreibung

Immer wenn ein Objekt durchlaufen werden muss (z.B. 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 Standard-Iterationsverhalten, während andere Typen (wie Object) keines haben. Einige eingebaute Typen mit einer [Symbol.iterator]()-Methode sind:

Siehe auch Iterationsprotokolle für mehr Informationen.

Beispiele Benutzerdefinierte Iterables

Wir können unsere eigenen Iterables so erstellen:

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:

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 Methode [Symbol.iterator]() eines Iterables kein Iterator-Objekt zurückgibt, ist es ein nicht wohlgeformtes Iterable. Die Verwendung als solches wird wahrscheinlich zu Laufzeitausnahmen oder fehlerhaftem Verhalten führen:

const nonWellFormedIterable = {};
nonWellFormedIterable[Symbol.iterator] = () => 1;
[...nonWellFormedIterable]; // TypeError: [Symbol.iterator]() returned a non-object value
Spezifikationen Browser-Kompatibilität Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4