Iterator.prototype[@@iterator]()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
[@@iterator]()
は Iterator
インスタンスのメソッドで、反復可能プロトコルを実行し、組み込みイテレーターが反復可能オブジェクトを期待する大部分の構文、例えばスプレッド構文や for...of
ループなどで利用できるようにします。これは this
の値、すなわちイテレーターオブジェクト自身を返します。
試してみましょう
構文
js
iterator[Symbol.iterator]()
返値
this
の値、すなわちイテレーターオブジェクト自身です。
例
for...of ループを使用した反復処理
このメソッドを直接呼び出す必要はめったにないことに注意してください。iterator
メソッドの存在により、組み込みのイテレーターはすべて[反復可能] (/ja/docs/Web/JavaScript/Reference/Iteration_protocols#反復可能プロトコル)となり、for...of
ループのような反復処理構文はループオーバーするために自動的にこのメソッドを呼び出してイテレーターを取得します。
js
const arrIterator = [1, 2, 3].values();
for (const value of arrIterator) {
console.log(value);
}
// ログ: 1, 2, 3
仕様書
Specification |
---|
ECMAScript Language Specification # sec-%iteratorprototype%-%symbol.iterator% |
ブラウザーの互換性
BCD tables only load in the browser