在我们平时的项目中,特别是模块化开发中。经常会遇到一些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冲突的更多相关文章

  1. use_frameworks!和#use_frameworks!的区别、解决Swift项目中use_frameworks!冲突的问题

    use_frameworks!和#use_frameworks!的区别 转自:https://www.jianshu.com/p/0ae58a477459 1. 用cocoapods 导入swift ...

  2. 项目中js调用service和procedure的办法

    Ajax.js /**通用ajax服务的定义对象 * services可以是单个服务对象,也可以是service服务数组 * 具体服务的定义请参考appendServices成员函数 */ funct ...

  3. springboot项目中js、css静态文件路径访问

    springboot静态文件访问的问题,相信大家也有遇到这个问题,如下图项目结构. 项目结构如上所示,静态页面引入js.css如下所示. 大家肯定都是这样写的,但是运行的话就是出不来效果,图片也不显示 ...

  4. 团队开发中Git冲突解决

    正常来说我们团队协作开发过程中,冲突是常有的事,下面介绍下本人在开发中的解决办法. 冲突的主要原因就是由于我们开发人员在分支的同一位置写入了不一样的代码,然后合并到主干上导致我们冲突. 方法: 当冲突 ...

  5. 解决Vite-React项目中js使用jsx语法报错的问题

    背景 在做存量项目接入Vite测试时发现,存量(老)项目中很多是直接在js中书写jsx语法,使用Vite启动时就会抛出一堆问题Failed to parse source. 不嫌麻烦可以跑个脚本批量修 ...

  6. 关于项目中js原型的使用

    在一个项目中为了减少全局变量的使用及模块化的开发我们使用的构造函数加原型的开发模式 var App = function(){ //管理构造函数的属性 this.name = 'jack' } //页 ...

  7. 大数据项目中js中代码和java中代码(解决Tomcat打印日志中文乱码)

    Idea2018中集成Tomcat9导致OutPut乱码找到tomcat的安装目录,打开logging.properties文件,增加一行代码,覆盖默认设置,将日志编码格式修改为GBK.java.ut ...

  8. SVN在团队项目中的使用技巧:[2]Tag操作

    SVN是Subversion的简称,是一个开放源代码的版本控制系统 本节讲述SVN使用中的TAG操作 文中若有错误或不足之处,欢迎留言指正   工具/原料 电脑 SVN 方法/步骤 1.认识SVN中T ...

  9. web项目中js加载慢问题解决思路

    最近使用Echarts地图(版本为echarts2,echarts3目前无法下载地图版). 问题描述:之前使用require形式加载,地图首次加载显示要6-7秒,难以接受. js配置代码如下: < ...

随机推荐

  1. 解决Centos 7 下 tomcat字体异常 Font '宋体' is not available to the JVM

    错误提示: SEVERE: Servlet.service() for servlet [example] in context with path [/myproject] threw except ...

  2. thinkphp 配置项总结

    'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}&g ...

  3. mfix模拟流化床燃烧帮助收敛的方法

    1.在反应速率里用rate_limit函数:2.初始床料中可以添加一部分碳和灰.下面给出详细解释: 1.c3m生成的化学反应速率中有一个这样的函数: double precision function ...

  4. jQuery html text val方法使用

    jQuery html text val方法使用 <%@ page language="java" import="java.util.*" pageEn ...

  5. weblogic 集群部署时上传jsp不更新问题

    在进行集群部署的时候,进行“源可访问性”设置的时候,要注意选择“我要使部署能够通过下列位置进行访问”: 前提是必须有共享存储:

  6. Bootstrap 导航 标题栏

    Bootstrap 导航 标题栏: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  7. Weex系列一、构建Weex工程

    Weex比React Native更简单,更容易学习,并且做到真正的跨平台,一套代码可以多个平台运行.所以建议大家都用Weex吧. 一.安装Node 已经安装Node的,请忽略过去. 检查Node是否 ...

  8. Python实现字典的key和values的交换

    #encoding=utf-8 #反转字典 即key和val互换 dict1={1:2,3:4,6:7,9:10} print '---生成器表达式' def invert_dict(d): retu ...

  9. TypeScript入门指南(JavaScript的超集)

    TypeScript入门指南(JavaScript的超集)   你是否听过 TypeScript? TypeScript 是 JavaScript 的超集,TypeScript结合了类型检查和静态分析 ...

  10. Android开发知识体系总结