いくつかの例:
ここでは、変数名、コンストラクター名、クラス名、識別子という同じ名前を持つ多くの異なるエンティティが見られます。 ページのソースコードを見て、あるべきではない要素にユーザークラスが見つかった場合はどうでしょうか。 クラス名はアプリケーションのアトミックエンティティではない(つまり、意味をなすためにvar、new、hasClassName、getElementByIdなどの追加のコンテキストが必要です)ため、文字列「user」を検索すると、必要なガベージが山ほど表示されます手。
var user = new User ( 'tenshi' ) var isUser = anElement. hasClassName ( 'user' ) var container = document. getElementById ( 'user' )
var user = new User ( 'tenshi' ) var isUser = anElement. hasClassName ( 'user' ) var container = document. getElementById ( 'user' )
var user = new User ( 'tenshi' ) var isUser = anElement. hasClassName ( 'user' ) var container = document. getElementById ( 'user' )
説明されている問題を解決するために、名前空間が導入されています。 例:
一見、コンテキストの二重表示は無意味に見えますが、これにより、結果のアトムを使用して、プロジェクトで使用される言語に関係なく、プロジェクト全体で同じエンティティを示すことができます。
- var user = new User ( 'tenshi' )
- var isUser = anElement。 hasClassName ( 'm-user' )
- var container = document。 getElementById ( 'id-user' )
- < div id = "id-user" > Tenshi < / / div >
- < div class = "b-person-info m-user" > ahtung! tenshiはユーザーです! < / div >
- #id-user { font-size : 24pt }
- .b-person-info { border : 1px solid transparent }
- .b-person-info .m-user { border-color : red }
最も一般的なプレフィックス:
- var anUserElement = $ ( 'id-user' )
- var aPersonElement = anUserElement。 選択 ( '.b-person' ) [ 0 ]
- aPersonElement。 addClassName ( 'm-user' )
id-識別子用
b- dssブロック用
m-ブロック修飾子用
同じ言語内で使用される名前の場合、プレフィックスは通常使用されません。 ただし、たとえば、デザイナーの名前は接頭辞TまたはCで始まるか、$やYMapsなどの単一の名前空間に配置されていることがわかります。
- var aMapList = new CMapList
- ( $$ ( '#id-map-list .b-map' )
- 。 地図
- ( YMaps。Map。Bind
- ( Ymaps
- 、 { propagateEvents : true
- 、 coordSystem : 新しい CCoordSystem
- }
- )
- )
- )
プロジェクトでどの原子が使用されていますか?