Iterator.prototype[Symbol.iterator]()
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2016年9月以降、すべてのブラウザーで利用可能です。
[Symbol.iterator]() は Iterator インスタンスのメソッドで、反復可能プロトコルを実行し、組み込みイテレーターが反復可能オブジェクトを期待する大部分の構文、例えばスプレッド構文や for...of ループなどで利用できるようにします。これは this の値、すなわちイテレーターオブジェクト自身を返します。
構文
js
iterator[Symbol.iterator]()
引数
なし。
返値
this の値、すなわちイテレーターオブジェクト自身です。
例
>for...of ループを使用した反復処理
このメソッドを直接呼び出す必要はめったにないことに注意してください。 [Symbol.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
仕様書
| 仕様書 |
|---|
| ECMAScript® 2027 Language Specification> # sec-%iteratorprototype%-%symbol.iterator%> |