A RetroSearch Logo

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

Search Query:

Showing content from http://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 iterable = {};

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

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

Das bekannte Symbol Symbol.iterator.

Schreibbar nein Aufzählbar nein Konfigurierbar nein Beschreibung

Immer wenn ein Objekt iteriert werden muss (zum Beispiel am Anfang einer for...of Schleife), wird seine [Symbol.iterator]() Methode 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) 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 so erstellen:

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

Oder Iterables können direkt in einer Klasse oder einem Objekt mithilfe 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 eine [Symbol.iterator]() Methode eines Iterables kein Iterator-Objekt zurückgibt, dann ist es ein nicht wohlgeformtes Iterable. Die Verwendung in dieser Form führt wahrscheinlich zu Laufzeitausnahmen oder fehlerhaftem Verhalten:

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