[7] インターフェイスの派生的インターフェイス群とは、
そのインターフェイスを実装するオブジェクトが、そのインターフェイス自体に関する
implements
文によって実装することとなるインターフェイスの集合です。
[8] あるインターフェイスの派生的インターフェイス群は、
implements
文の右辺にあるインターフェイスimplements
文の右辺にあるインターフェイス... によって構成されます >>6。
implements
によって実装することとなるインターフェイスが含まれるのに対し、
こちらではそれらは含まれず、直接 implements
しているものに限定されています。[26] インターフェイスの露出集合は、その派生的インターフェイス群のすべてのインターフェイスの露出集合の部分集合になっていなければなりません >>27。
[2] コールバックインターフェイスは、派生的インターフェイス群を持つことができません >>1。
[14] インターフェイスとその派生的インターフェイス群を通して、 メンバーの名前が衝突してはなりません >>6, >>18。
[17] オブジェクトが特殊演算を定義するインターフェイスを複数個実装する場合、 どれが呼び出されるかは未定義です >>16。
[19] Global
や PrimaryGlobal
が指定されたインターフェイスでは、
インターフェイスとその派生的インターフェイス群を通じて、
文字列化器や直列化器はそれぞれ高々1回しか宣言できません >>18。
[5] インターフェイスとその派生的インターフェイス群を通して、 反復器 >>3, >>18 や反復器オブジェクト >3 はそれぞれ高々1回しか宣言できません。
[4] 反復器オブジェクトインターフェイスとその派生的インターフェイス群においては、
next
という名前のインターフェイスメンバーを持つことができません >>3。
[20] MapClass
インターフェイスとその派生的インターフェイス群においては、
clear
, delete
, forEach
, get
,
has
, set
という名前のインターフェイスメンバーの利用に関する制約があり、
size
, entries
, keys
, values
という名前のインターフェイスメンバーを持つことができません。
[22] unforgeable な属性や演算が定義されたインターフェイスが継承インターフェイスであるようなインターフェイスとその派生的インターフェイス群においては、 その属性や演算と同じ名前の静的ではない属性や通常演算を持つことはできません >>21。
[24] 派生的インターフェイス群のメンバーは、JavaScript においては元のインターフェイスのメンバーとマージされた状態で存在します。 前の章に示した各種の制限は、ここでの衝突を回避するためのものです。
[25] 通常はそれらはインターフェイスオブジェクトに現れ、対象となるオブジェクトのプロトタイプとして存在することで機能しますが、
unforgeable な場合や Global
/PrimaryGlobal
な場合には、オブジェクトに直接現れます。