欢迎来到天天文库
浏览记录
ID:34591326
大小:68.00 KB
页数:10页
时间:2019-03-08
《《js学习笔记》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、JS学习笔记一:CreatingModulesandNamespaces。//thefirstruleofJavaScriptmodules:amoduleshouldneveraddmorethanasinglesymboltotheglobalnamespace.//Createanemptyobjectasournamespace//ThissingleglobalsymbolwillholdallofourothersymbolsvarClass={};//DefinefunctionswithinthenamespaceClass.de
2、fine=function(data){/*codegoeshere*/}Class.provides=function(o,c){/*codegoeshere*/}Inthecaseoftheclassmodule,youcanputthecodeinafilenamedClass.jsandbeginthatfilewithacommentthatlookslikethis:/***Class.js:Amoduleofutilityfunctionsforworkingwithclasses.**Thismoduledefinesasingl
3、eglobalsymbolnamed"Class".*Classreferstoanamespaceobject,andallutilityfunctions*arestoredaspropertiesofthisnamespace.**/Example10-1.Creatinganamespacebasedonadomainname//Createtheglobalsymbol"com"ifitdoesn'texist//Throwanerrorifitdoesexistbutisnotanobjectvarcom;if(!com)com={}
4、;elseif(typeofcom!="object")thrownewError("comalreadyexistsandisnotanobject");//Repeatthecreationandtype-checkingcodeforthenextlevelif(!com.davidflanagan)com.davidflanagan={}elseif(typeofcom.davidflanagan!="object")thrownewError("com.davidflanaganalreadyexistsandisnotanobject
5、");//Throwanerrorifcom.davidflanagan.Classalreadyexistsif(com.davidflanagan.Class)thrownewError("com.davidflanagan.Classalreadyexists");//Otherwise,createandpopulatethenamespacewithonebigobjectliteralcom.davidflanagan.Class={define:function(data){/*codehere*/},provides:functi
6、on(o,c){/*codehere*/}};varcom;//Declareglobalsymbolbeforetestingforitspresenceif(!com
7、
8、!com.davidflanagan
9、
10、!com.davidflanagan.Class)thrownewError("com/davidflanagan/Class.jshasnotbeenloaded");/***com/davidflanagan/Shapes.js:amoduleofclassesrepresentingshapes**Thismoduledefine
11、sclasseswithinthecom.davidflanagan.shapesnamespace*Thismodulerequiresthecom/davidflanagan/Class.jsmodule**///First,checkfortheClassmodulevarcom;//Declareglobalsymbolbeforetestingforitspresenceif(!com
12、
13、!com.davidflanagan
14、
15、!com.davidflanagan.Class)thrownewError("com/davidflanag
16、an/Class.jshasnotbeenloaded");//Importasymbolfromthatmodulevardefine
此文档下载收益归作者所有