团队项目中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冲突的更多相关文章
- use_frameworks!和#use_frameworks!的区别、解决Swift项目中use_frameworks!冲突的问题
		
use_frameworks!和#use_frameworks!的区别 转自:https://www.jianshu.com/p/0ae58a477459 1. 用cocoapods 导入swift ...
 - 项目中js调用service和procedure的办法
		
Ajax.js /**通用ajax服务的定义对象 * services可以是单个服务对象,也可以是service服务数组 * 具体服务的定义请参考appendServices成员函数 */ funct ...
 - springboot项目中js、css静态文件路径访问
		
springboot静态文件访问的问题,相信大家也有遇到这个问题,如下图项目结构. 项目结构如上所示,静态页面引入js.css如下所示. 大家肯定都是这样写的,但是运行的话就是出不来效果,图片也不显示 ...
 - 团队开发中Git冲突解决
		
正常来说我们团队协作开发过程中,冲突是常有的事,下面介绍下本人在开发中的解决办法. 冲突的主要原因就是由于我们开发人员在分支的同一位置写入了不一样的代码,然后合并到主干上导致我们冲突. 方法: 当冲突 ...
 - 解决Vite-React项目中js使用jsx语法报错的问题
		
背景 在做存量项目接入Vite测试时发现,存量(老)项目中很多是直接在js中书写jsx语法,使用Vite启动时就会抛出一堆问题Failed to parse source. 不嫌麻烦可以跑个脚本批量修 ...
 - 关于项目中js原型的使用
		
在一个项目中为了减少全局变量的使用及模块化的开发我们使用的构造函数加原型的开发模式 var App = function(){ //管理构造函数的属性 this.name = 'jack' } //页 ...
 - 大数据项目中js中代码和java中代码(解决Tomcat打印日志中文乱码)
		
Idea2018中集成Tomcat9导致OutPut乱码找到tomcat的安装目录,打开logging.properties文件,增加一行代码,覆盖默认设置,将日志编码格式修改为GBK.java.ut ...
 - SVN在团队项目中的使用技巧:[2]Tag操作
		
SVN是Subversion的简称,是一个开放源代码的版本控制系统 本节讲述SVN使用中的TAG操作 文中若有错误或不足之处,欢迎留言指正 工具/原料 电脑 SVN 方法/步骤 1.认识SVN中T ...
 - web项目中js加载慢问题解决思路
		
最近使用Echarts地图(版本为echarts2,echarts3目前无法下载地图版). 问题描述:之前使用require形式加载,地图首次加载显示要6-7秒,难以接受. js配置代码如下: < ...
 
随机推荐
- OC类方法的调用
			
有个Person类,有个Phone类,Person类想使用Phone类中打电话和发短信的方法 1.Phone.h Phone有kind和color属性 ,方法定义的时候将用到的参数都 ...
 - matlab计算矩阵每列非0元素个数
			
在统计分析中,有时候需要计算矩阵每列非0元素的个数,可以用以下方法: 先用find找到每列不为0的元素index,然后用count计数. 假设有矩阵A[M,N], 结果存在countZeros cou ...
 - m3u8的浏览器播放器
			
前几天花了点时间研究了下怎么在浏览器中播放m3u8的视频地址,最后终于找到了两个开源的东西可以正常播放,稍稍整理下方便后来人. m3u8是什么就不介绍了,现在所有视频网站基本都是通过m3u8的方式来播 ...
 - hdu-3790-最短路径问题(dijkstra算法)
			
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 这题cin会超时i 关于解决cin超时的问题 在main函数开头加上 ios::sync_wit ...
 - MyBatis 多个查询条件的传递
			
<!-- 方法1,构建查询对象: QueryCondition qc = new QueryCondition(); qc.setGender(1); qc.setBirthday(new Da ...
 - angular表格分页
			
<!doctype html> <html lang="en" > <head> <meta charset="UTF-8&qu ...
 - u3d脚本生命周期
 - 法国总统放大招,用“分身术”竞选总统 全息3d 网
			
编辑:大熊 [摘要]法国总统采用全息技术实现"分身"演讲,可谓是一次演讲,全面覆盖! 全息3d网讯:众所周知,欧美国家的总统是通过公开竞选得到的,所以能更直接.更广泛的近距离接触民 ...
 - java中的final与static
			
许多程序设计语言都有自己的办法告诉编译器某个数据是"常数".常数主要应用于下述两个方面: (1) 编译期常数,它永远不会改变 (2) 在运行期初始化的一个值,我们不希望它发生变化 ...
 - 在 Linux OpenVPN 服务端吊销客户端证书
			
OpenVPN服务器与 VPN 客户端之间的身份验证, 主要是通过证书来进行的.有时我们需要禁止某个用户连接 VPN 服务器,则将其证书吊销即可.要吊销(Revoke) OpenVPN 客户端证书, ...