非標準。
Iterator
関数は SpiderMonkey固有の機能で、ある時点で削除されます。将来向きの用途に対して、for..ofループとiterator protocolを使用することを検討してください。概要
レガシーイテレータプロトコルを実装し、オブジェクトの列挙可能なプロパティに対して反復するオブジェクトを返します。
構文
Iterator(object, [keyOnly])
引数
object
- プロパティを反復処理するオブジェクト。
keyOnly
keyOnly
が truthy な値である場合は、Iterator.prototype.next
がproperty_name
のみ返します。
説明
使用方法の概要がIterators and Generatorsページで提供されています。
メソッド
Iterator.prototype.next
[property_name, property_value]
フォーマットで次のアイテムを返します。それ以上のアイテムが存在しない場合、StopIteration
をスローします。
例
オブジェクトのプロパティを反復処理する
var a = {
x: 10,
y: 20,
};
var iter = Iterator(a);
console.log(iter.next()); // ["x", 10]
console.log(iter.next()); // ["y", 20]
console.log(iter.next()); // throws StopIteration
レガシーデストラクタfor-in
文を使用してオブジェクトのプロパティを反復処理する
var a = {
x: 10,
y: 20,
};
for (var [name, value] in Iterator(a)) {
console.log(name, value); // x 10
// y 20
}
for-ofとともにイテレータを使用する
var a = {
x: 10,
y: 20,
};
for (var [name, value] of Iterator(a)) { // @@iterator is used
console.log(name, value); // x 10
// y 20
}
仕様
非標準。すべての現在の仕様書でサポートされていません。
ブラウザ実装状況
サポートされていません。バージョン 57 より前の Firefox でサポートしていました。