* 仕様書

[REFS[
- [1] '''[CITE[Web IDL (Second Edition)]] ([TIME[2014-02-10 21:45:38 +09:00]] 版) <http://heycam.github.io/webidl/#dfn-definition>'''
- [6] [CITE[Web IDL (Second Edition)]] ([TIME[2014-02-10 21:45:38 +09:00]] 版) <http://heycam.github.io/webidl/#NamedConstructor>
]REFS]

* 文脈

[2] [[定義]]は [[IDL素片]]直下に置くことができます。 [[IDL素片]]は、零個以上の[[定義]]の並びです
[SRC[>>1]]。

* 種類

[3] [[定義]]には次のものがあります。
- [[名前付き定義]]
-- [[インターフェイス]]
--- [[コールバックインターフェイス]]
-- [[部分インターフェイス定義]]
-- [[辞書]]
-- [[部分辞書定義]]
-- [[例外]]
-- [[型定義]]
-- [[列挙]]
-- [[コールバック関数]]
-- [[クラス]]
- [[実装文]]

* 名前空間

[4] [[実装文]]以外の[[定義]]は[DFN[[RUBYB[[[名前付き定義]]]@en[named definition]]]]と呼ばれています
[SRC[>>1]]。
[[名前付き定義]]には[[識別子]]が含まれており、これが定義されるものの[[名前]]となります。

[5] [[部分インターフェイス定義]]と[[部分辞書定義]]以外の[[名前付き定義]]は名前空間を共有していて、
互いに異なる名前を持たなければなりません [SRC[>>1]]。また[[予約識別子]]と同じであってはなりません
[SRC[>>1]]。

[7] [CODE@en[[[NamedConstructor]]]] による名前は[[インターフェイスオブジェクト]]や[[例外インターフェイスオブジェクト]]の名前と衝突してはいけないことになっています [SRC[>>6]] が、
[[インターフェイスオブジェクト]]のない[[インターフェイス]]や[[インターフェイス]]以外の[[定義]]との名前の衝突は禁止されていません。