刚才看到一篇文章:JS操作URL
代码如下:
var LG=(function(lg){
var objURL=function(url){
this.ourl=url||window.location.href;
this.href="";//?前面部分
this.params={};//url参数对象
this.jing="";//#及后面部分
this.init();
}
//省略...
lg.URL=objURL;
return lg;
}(LG||{}));
请问这里为什么要添加lg参数,有什么好处,还有,为什么要把后面的方法用()括起来,最后的(LG||{})是干什么用的?
请JS高人帮忙解惑
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
因为LG是我个人的共用js的名称空间,把全部js写在一个文件里肯定不太好管理,所以有LG.URL.js、LG.DropDown.js等 等,引用多个这样的js文件时,因为我只用了一个LG对象,所以按常理后引用的是会覆盖前面引用的。如果先引用 LG.URL.js 再引用LG.DropDown.js,结果就是LG.URL.js里的功能是不能用的,有个lg参数后,后引用的以原来LG做参数,就变成修改以前的LG了,而不是覆盖,但第一个引用时,是没有LG这个对象的,所以有了 (LG||{})这样的写法,即第一个引用传入一个空对象{}
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
防止命名空间重复定义
这样写我个人感觉比较怪异
我是这样写的
var lg = window.LG || ( window.LG={});
这样我是看起来读的通点
添加回答
举报
0/150
提交
取消