• 怎样让js不产生冲突,避免全局变量的泛滥,合理运用命名空间


    为了避免变量之间的覆盖与冲突。能够生成命名空间。命名空间是一种特殊的前缀,在js中,通过{ }对象实现。

    在不同的匿名函数中,依据功能声明一个不同的命名空间,每一个匿名函数中GLOBAL对象的属性都不直接挂在GLOBAL上,而是挂在次匿名函数的命名空间下。如:

    <script type="text/javascript">
       var GLOBAL={}
    </script>
    <script type="text/javascript">
       (function(){
          var a=123, a1=256;
          GLOBAL.A={}
          GLOBAL.A.str=a;
       })();
    </script>
    
    <script type="text/javascript">
       (function(){
          var b1=123, b2=256;
          GLOBAL.B={}
          GLOBAL.B.str=a;
       })();
    </script>
    

    假设同一个匿名函数中的程序非常复杂,变量名非常多。命名空间能够进一步扩展,生成二级命名空间:

    <script type="text/javascript">
        var GLOBAL={}
    </script>
    <script type="text/javascript">
       (function(){
          var a=123, a1=256;
          GLOBAL.A={};
          GLOBAL.A.CAT={};
          GLOBAL.A.DOG={};
          GLOBAL.A.CAT.name="mini";
          GLOBAL.A.CAT.move=function(){
          }
          GLOBAL.A.DOG.name="mini";
          GLOBAL.A.DOG.move=function(){
          }
       })();
    </script>
    


    因生成命名空间是很经常使用的功能,能够进一步将生成命名空间的功能定义成一个函数。方便调用,例如以下:

    <script type="text/javascript">
       var GLOBAL={}
       GLOBAL.namespace=function(str){
          var arr=str.split("."), o=GLOBAL;
                for(i=arr[0]=="GLOBAL"?

    1:0;i<arr.length; i++){ o[arr[i]]=o[arr[i]] || {}; o=o[arr[i]]; } } </script>


     

    调用命名空间详细操作:

    <script type="text/javascript">
    //=============================================================
    //     功能A
    //     project师甲
    //     email:ctkl68945@gmail.com     msn:ctkl68945@hotmail.com"
    //     2012-11-06
    //=============================================================
     
    (function(){
       var a=123, a1="hello world";
       GLOBAL.namespace("A.CAT");
       GLOBAL.namespace("A.DOG");
       GLOBAL.A.CAT.name="mini";
       GLOBAL.A.CAT.move=function(){
       }
       GLOBAL.A.DOG.name="mini";
       GLOBAL.A.DOG.move=function(){
       }
       GLOBAL.A.str=a;
       GLOBAL.A.str1=a1;
    })();
    

    依次类似,不管多人的直接团队开发,还是个人的间接团队合作。都须要良好的可维护性。

    1、加入必要的代码凝视

    2、让JS不产生冲突。需避免全局变量的泛滥,合理使用命名空间

     

  • 相关阅读:
    2018-2019-1 20165313 实验三 实时系统
    2018-2019-1 20165313 《信息安全系统设计基础》第七周学习总结”
    2018-2019-1 20165313 20165312 20165322 实验二 固件程序设计
    2018-2019-1 20165313 《信息安全系统设计基础》第五周学习总结
    2018-2019-1 20165228 《信息安全系统设计基础》第四周学习总结
    BUUCTF 相册 WriteUp
    BUUCTF Youngter-drive WriteUp
    word插入照片格式混乱的解决
    20181218 实验二《Python程序设计》实验报告
    20181218 实验一《Python程序设计》实验报告
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5164628.html
Copyright © 2020-2023  润新知