首页新闻找找看学习计划

JS这样写的好处是什么?

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-25 13:09

刚才看到一篇文章: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高人帮忙解惑

草根程序猿的主页 草根程序猿 | 初学一级 | 园豆:129
提问于:2012-04-25 11:40
< >
分享
最佳答案
0

因为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||{})这样的写法,即第一个引用传入一个空对象{}

收获园豆:10
loogn | 菜鸟二级 |园豆:329 | 2012-04-25 11:54

非常感谢

草根程序猿 | 园豆:129 (初学一级) | 2012-04-25 13:09
其他回答(1)
0

防止命名空间重复定义

这样写我个人感觉比较怪异

我是这样写的  

var lg = window.LG || (  window.LG={});

这样我是看起来读的通点

cjz9032 | 园豆:206 (菜鸟二级) | 2015-11-21 15:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册