JS命名空间的使用
在多人合作写脚本的时候,会发生方法名冲突的情况
用JS的命名空间能解决这个问题
1 | var MYNAMESPACE = MYNAMESPACE || {}; |
若全局空间中已有同名对象,则不覆盖该对象;否则创建一个新的命名空间。
下面就列出一个例子
1 2 3 4 5 6 7 8 9 10 11 12 13 | var MYNAMESPACE = MYNAMESPACE || {}; MYNAMESPACE.person = function (name) { this .name = name; }; MYNAMESPACE.person.prototype.getName = function () { return this .name; }; // 使用方法 var p = new MYNAMESPACE.person( "doc" ); p.getName(); // doc |
上面的例子是别人博客的,下面写一个自己自己写的
有两个人同时写一个页面,一个是DOC,一个ZXD,同时命名了一个hello方法
全局变量里也有一个hello方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!doctype html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>命名空间的用法</title> <script src= "1.js" ></script> <script src= "2.js" ></script> <script src= "3.js" ></script> </head> <body> </body> <script type= "text/javascript" > hello(); DOC.hello(); ZXD.hello(); ZXD.getName( "ZXD" ); </script> </html> |
1.js
1 2 3 | function hello(){ console.log(1); } |
2.js
1 2 3 4 5 | var DOC = DOC || {}; DOC.hello = function () { console.log( "hello DOC" ); } |
3.js
1 2 3 4 5 6 7 8 | var ZXD = ZXD || {}; ZXD.hello = function () { console.log( "hello ZXD" ); } ZXD.getName= function (name){ console.log(name); } |
输出
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步