?uem/p1-90`Map はキーと値のペアのコレクションであり、キーと値のいずれも任意の
Map は、平均してコレクション内の要素数に対して劣線形のアクセス時間を提供するハッシュテーブルまたはその他の機構を使用して実装されなければなりません。この仕様で使用されるデータ構造は、Map に要求される観測可能な意味論を説明することのみを意図しています。実用的な実装モデルであることを意図したものではありません。
Map
extends 節の値として使用できます。規定された Map の動作を継承しようとするサブクラスMap.prototype の組込みメソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成して初期化するため、Map super 呼出しを含まなければなりません。この関数は呼び出されたとき、次の手順を実行します。
パラメーター iterable が存在する場合、最初の要素が Map のキーとして使用される値で、2番目の要素がそのキーに関連付ける値である2要素の array-like オブジェクトを生成する
パラメーター iterable は、最初の要素が Map のキーとして使用される値で、2番目の要素がそのキーに関連付ける値である2要素の array-like オブジェクトを生成する
Map
callback は2つの引数を受け取る関数であるべきです。groupBy は items 内の各要素について昇順に callback を1回ずつ呼び出し、新しい Map を構築します。callback が返す各値は Map のキーとして使用されます。そのような各キーについて、結果の Map は、そのキーをキーとし、callback がそのキーを返したすべての要素を含む配列を値とするエントリを持ちます。
callback は、要素の値と要素のインデックスという2つの引数で呼び出されます。
groupBy の戻り値は Map です。
この関数は呼び出されたとき、次の手順を実行します。
Map.prototype の初期値は
このプロパティは属性 { [[Writable]]:
Map[%Symbol.species%] は、set アクセサー関数が
この関数の
派生コレクションオブジェクトを作成するメソッドは、派生オブジェクトの作成に使用する
Map prototype オブジェクトは:
このメソッドは呼び出されたとき、次の手順を実行します。
既存の [[MapData]]
Map.prototype.constructor の初期値は
このメソッドは呼び出されたとき、次の手順を実行します。
値
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
callback は3つの引数を受け取る関数であるべきです。forEach は Map に存在する各キーと値のペアについて、キーの挿入順に callback を1回ずつ呼び出します。callback は実際に存在する Map のキーについてのみ呼び出され、Map から削除されたキーについては呼び出されません。
thisArg パラメーターが指定された場合、callback の各呼出しで
callback は、項目の値、項目のキー、および走査中の Map という3つの引数で呼び出されます。
forEach は呼び出されたオブジェクトを直接変更しませんが、callback の呼出しによってそのオブジェクトが変更される場合があります。Map の [[MapData]] の各エントリは1回だけ訪問されます。forEach の呼出し開始後に追加された新しいキーは訪問されます。訪問後に削除され、forEach 呼出しが完了する前に再び追加されたキーは再訪問されます。forEach の呼出し開始後、訪問される前に削除されたキーは、forEach 呼出しが完了する前にそのキーが再び追加されない限り訪問されません。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
Map.prototype.size は、set アクセサー関数が
このメソッドは呼び出されたとき、次の手順を実行します。
このプロパティは属性 { [[Writable]]:
Map インスタンスは
Map Iterator は、特定の Map インスタンスオブジェクトに対する特定の反復を表すオブジェクトです。Map Iterator オブジェクトには名前付き
%MapIteratorPrototype% オブジェクトは:
このプロパティは属性 { [[Writable]]:
Set オブジェクトは
Set オブジェクトは、平均してコレクション内の要素数に対して劣線形のアクセス時間を提供するハッシュテーブルまたはその他の機構を使用して実装されなければなりません。この仕様で使用されるデータ構造は、Set オブジェクトに要求される観測可能な意味論を説明することのみを意図しています。実用的な実装モデルであることを意図したものではありません。
Set Record は、Set または類似オブジェクトのインターフェイスをカプセル化するために使用される
Set Record は
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[SetObject]] | an Object | Set または類似オブジェクト。 |
| [[Size]] | a non-negative integer or +∞ | オブジェクトから報告されたサイズ。 |
| [[Has]] | a function object |
オブジェクトの has メソッド。
|
| [[Keys]] | a function object |
オブジェクトの keys メソッド。
|
Set
extends 節の値として使用できます。規定された Set の動作を継承しようとするサブクラスSet.prototype の組込みメソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成して初期化するため、Set super 呼出しを含まなければなりません。この関数は呼び出されたとき、次の手順を実行します。
Set
Set.prototype の初期値は
このプロパティは属性 { [[Writable]]:
Set[%Symbol.species%] は、set アクセサー関数が
この関数の
派生コレクションオブジェクトを作成するメソッドは、派生オブジェクトの作成に使用する
Set prototype オブジェクトは:
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
既存の [[SetData]]
Set.prototype.constructor の初期値は
このメソッドは呼び出されたとき、次の手順を実行します。
値
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
反復の目的では、Set は各エントリのキーと値が同じ値である Map に似たものとして見えます。
このメソッドは呼び出されたとき、次の手順を実行します。
callback は3つの引数を受け取る関数であるべきです。forEach は
thisArg パラメーターが指定された場合、callback の各呼出しで
callback は3つの引数で呼び出されます。最初の2つの引数は Set に含まれる値です。両方の引数には同じ値が渡されます。走査中の
callback が3つの引数で呼び出されるのは、Map および Array の forEach メソッドで使用される callback 関数との一貫性を保つためです。Set では、各項目の値はキーと値の両方であるとみなされます。
forEach は呼び出されたオブジェクトを直接変更しませんが、callback の呼出しによってそのオブジェクトが変更される場合があります。
各値は通常1回だけ訪問されます。ただし、訪問後に削除され、forEach 呼出しが完了する前に再び追加された値は再訪問されます。forEach の呼出し開始後、訪問される前に削除された値は、forEach 呼出しが完了する前にその値が再び追加されない限り訪問されません。forEach の呼出し開始後に追加された新しい値は訪問されます。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
反復の目的では、Set は各エントリのキーと値が同じ値である Map に似たものとして見えます。
Set.prototype.size は、set アクセサー関数が
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このプロパティは属性 { [[Writable]]:
Set インスタンスは
Set Iterator は、以下で定義される構造を持ち、特定の Set インスタンスオブジェクトに対する特定の反復を表す
%SetIteratorPrototype% オブジェクトは:
このプロパティは属性 { [[Writable]]:
WeakMap はキーと値のペアのコレクションであり、キーはオブジェクトおよび/またはシンボルで、値は任意の
実装は、WeakMap のキーと値のペアがアクセス不能になってから、そのキーと値のペアが WeakMap から削除されるまでの間に、任意に決定された遅延を設けてもかまいません。この遅延を ECMAScript プログラムから観測できると、プログラム実行に影響を与える不確定性の原因になります。そのため、ECMAScript 実装は、観測者が観測対象のキーを提示することを必要とせずに WeakMap のキーを観測する手段を提供してはなりません。
WeakMap は、平均してコレクション内のキーと値のペア数に対して劣線形のアクセス時間を提供するハッシュテーブルまたはその他の機構を使用して実装されなければなりません。この仕様で使用されるデータ構造は、WeakMap に要求される観測可能な意味論を説明することのみを意図しています。実用的な実装モデルであることを意図したものではありません。
WeakMap と WeakSet は、WeakMap または WeakSet インスタンスが存在しなければオブジェクトまたはシンボルがアクセス不能になり、実装のガベージコレクション機構による資源回収の対象になる場合に、メモリ資源を「リーク」しない方法で状態をオブジェクトまたはシンボルへ動的に関連付ける機構を提供することを意図しています。この特性は、WeakMap または WeakSet インスタンスからキーへの、オブジェクト/シンボルごとの逆引きマッピングを使用することで実現できます。代わりに、各 WeakMap または WeakSet インスタンスが内部的にキーと値のデータを保存してもかまいませんが、この方法では WeakMap または WeakSet の実装とガベージコレクターとの協調が必要になります。次の文献では、WeakMap および WeakSet の実装に役立つ可能性がある機構について説明しています。
Barry Hayes. 1997. Ephemerons: a new finalization mechanism. In Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA '97), A. Michael Berman (Ed.). ACM, New York, NY, USA, 176-183, http://doi.acm.org/10.1145/263698.263733.
Alexandra Barros, Roberto Ierusalimschy, Eliminating Cycles in Weak Tables. Journal of Universal Computer Science - J.UCS, vol. 14, no. 21, pp. 3481-3497, 2008, http://www.jucs.org/jucs_14_21/eliminating_cycles_in_weak
WeakMap
extends 節の値として使用できます。規定された WeakMap の動作を継承しようとするサブクラスWeakMap.prototype の組込みメソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成して初期化するため、WeakMap super 呼出しを含まなければなりません。この関数は呼び出されたとき、次の手順を実行します。
パラメーター iterable が存在する場合、最初の要素が WeakMap のキーとして使用される値で、2番目の要素がそのキーに関連付ける値である2要素の array-like オブジェクトを生成する
WeakMap
WeakMap.prototype の初期値は
このプロパティは属性 { [[Writable]]:
WeakMap prototype オブジェクトは:
WeakMap.prototype.constructor の初期値は
このメソッドは呼び出されたとき、次の手順を実行します。
値
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このプロパティは属性 { [[Writable]]:
WeakMap インスタンスは
WeakSet はオブジェクトおよび/またはシンボルのコレクションです。異なるオブジェクトまたはシンボルは、WeakSet のコレクション内の要素として1回だけ出現できます。WeakSet に特定の値が含まれているかどうかを問い合わせることはできますが、保持している値を列挙する機構は提供されません。特定の条件では、
実装は、WeakSet に含まれる値がアクセス不能になってから、その値が WeakSet から削除されるまでの間に、任意に決定された遅延を設けてもかまいません。この遅延を ECMAScript プログラムから観測できると、プログラム実行に影響を与える不確定性の原因になります。そのため、ECMAScript 実装は、観測者が観測対象の値を提示することを必要とせずに WeakSet に特定の値が含まれるかどうかを判定する手段を提供してはなりません。
WeakSet は、平均してコレクション内の要素数に対して劣線形のアクセス時間を提供するハッシュテーブルまたはその他の機構を使用して実装されなければなりません。この仕様で使用されるデータ構造は、WeakSet に要求される観測可能な意味論を説明することのみを意図しています。実用的な実装モデルであることを意図したものではありません。
WeakSet
extends 節の値として使用できます。規定された WeakSet の動作を継承しようとするサブクラスWeakSet.prototype の組込みメソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成して初期化するため、WeakSet super 呼出しを含まなければなりません。この関数は呼び出されたとき、次の手順を実行します。
WeakSet
WeakSet.prototype の初期値は
このプロパティは属性 { [[Writable]]:
WeakSet prototype オブジェクトは:
このメソッドは呼び出されたとき、次の手順を実行します。
WeakSet.prototype.constructor の初期値は
このメソッドは呼び出されたとき、次の手順を実行します。
値
このメソッドは呼び出されたとき、次の手順を実行します。
このプロパティは属性 { [[Writable]]:
WeakSet インスタンスは