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

関連情報