首页 > 代码库 > 团队项目中js冲突
团队项目中js冲突
在我们平时的项目中,特别是模块化开发中。经常会遇到一些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冲突
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。