Iterator.prototype[@@iterator]()

[@@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%-@@iterator

ブラウザーの互換性

BCD tables only load in the browser

関連情報