刚才看到一篇文章: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高人帮忙解惑
因为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||{})这样的写法,即第一个引用传入一个空对象{}
非常感谢
防止命名空间重复定义
这样写我个人感觉比较怪异
我是这样写的
var lg = window.LG || ( window.LG={});
这样我是看起来读的通点