Here we see many different entities with one name: variable name, constructor name, class name, identifier. What if you looked at the source code of the page and found one class has a 'user' class, which should not be there? Due to the fact that the class name is not an atomic entity for your application (that is, it requires an additional context like var, new, hasClassName, getElementById, to find meaning), a search on the “user” line will give you a pile of garbage by hands.
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' )
At first glance, a double indication of the context seems meaningless, but this allows the resulting atoms to be used to designate the same entities in the whole project, no matter what languages are used in it.
- 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 is a user! < / div >
- # id-user { font-size : 24pt }
- .b-person-info { border : 1px solid transparent }
- .b-person-info .m-user { border-color : red }
The most common prefixes are:
- var anUserElement = $ ( 'id-user' )
- var aPersonElement = anUserElement. select ( '.b-person' ) [ 0 ]
- aPersonElement. addClassName ( 'm-user' )
- var aMapList = new CMapList
- ( $$ ( '# id-map-list .b-map' )
- . map
- ( YMaps. Map . Bind
- ( YMaps
- , { propagateEvents : true
- , coordSystem : new CCoordSystem
- }
- )
- )
- )
Source: https://habr.com/ru/post/97670/
All Articles