码迷,mamicode.com
首页 > Web开发 > 详细

团队项目中js冲突

时间:2016-11-29 19:27:15      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:变量   window   之间   匿名函数   概念   项目   log   函数   nbsp   

     在我们平时的项目中,特别是模块化开发中。经常会遇到一些js冲突问题,特别是当项目复杂到一定程度的时候。比如项目中引入了相当多的类库,框架以后。

那么。我们如何去避免或者解决这类问题呢?

     1、避免使用全局变量。

  2、使用匿名函数的方法来把自己的模块包起来。这样你所定义的变量 就只能在这个匿名函数中使用了。

 

  如果存在模块之间的通信怎么办呢?我们可以适量的使用全局

  例如:

   var win={};//全局对象
        (function(){//匿名函数A
            win.str1="aaa";
        })();
        
        (function(){//匿名函数B
            console.log(win.str1);
        })();

  这样你就可以在函数B中使用函数A中的变量。但是会存在一个问题。就是,B中如果有一个变量跟A中的命名一样,那就会产生覆盖。

这样就用到了一个叫命名空间的概念!

命名的时候加上一个前缀。window下的全局变量.命名空间.变量名

var win;    
win={};    //一级命名
win.A = {};   //二级命名
(function(){
    win.A.str1="qqq";})();


win.B={};
(function(){
    console.log(win.A.str1);
    win.B.str1="aaa";
    console.log(win.B.str1);
})();

这是一种解决问题的办法吧,如有大神看到。忘指点!

 

团队项目中js冲突

标签:变量   window   之间   匿名函数   概念   项目   log   函数   nbsp   

原文地址:http://www.cnblogs.com/wl-l/p/6114618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!