javascript模拟命名空间
在C++和C#中,命名空间用于尽可能地减少名称冲突。例如,在.NETFramework中,命名空间有助于将Microsoft.Build.Task.Message类与System.Messaging.Message区分开来。JavaScript没有任何特定语言功能来支持命名空间,但很容易使用对象来模拟命名空间。如果要创建一个JavaScript库,则可以将它们包装在命名空间内,而不需要定义全局函数和类,如下所示:
varMSDNMagNS={}; MSDNMagNS.Pet=function(name){//codehere}; MSDNMagNS.Pet.prototype.toString=function(){//code}; varpet=newMSDNMagNS.Pet(“Yammer”);
命名空间的一个级别可能不是唯一的,因此可以创建嵌套的命名空间:
varMSDNMagNS={}; //nestednamespace“Examples” MSDNMagNS.Examples={}; MSDNMagNS.Examples.Pet=function(name){//code}; MSDNMagNS.Examples.Pet.prototype.toString=function(){//code}; varpet=newMSDNMagNS.Examples.Pet(“Yammer”);
可以想象,键入这些冗长的嵌套命名空间会让人很累。幸运的是,库用户可以很容易地为命名空间指定更短的别名:
//MSDNMagNS.ExamplesandPetdefinition... //think“usingEg=MSDNMagNS.Examples;” varEg=MSDNMagNS.Examples; varpet=newEg.Pet(“Yammer”); alert(pet);
如果看一下MicrosoftAJAX库的源代码,就会发现库的作者使用了类似的技术来实现命名空间,这里就不做详细说明了,有需要的小伙伴自己去度娘找吧。
以上就是本文的全部内容了,希望对大家学习javascript能够有所帮助