最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

实例讲解避免javascript冲突的方法

来源:懂视网 责编:小采 时间:2020-11-27 21:48:17
文档

实例讲解避免javascript冲突的方法

实例讲解避免javascript冲突的方法:本文实例讲解了如何避免javascript中冲突的方法,需要的朋友可以了解一下[1]工程师甲编写功能Avar a = 1; var b = 2; alert(a+b);//3[2]工程师乙添加新功能Bvar a = 2; var b = 1; alert(a-b);//1[3]上一步中,工程师乙在不知情的情况下,
推荐度:
导读实例讲解避免javascript冲突的方法:本文实例讲解了如何避免javascript中冲突的方法,需要的朋友可以了解一下[1]工程师甲编写功能Avar a = 1; var b = 2; alert(a+b);//3[2]工程师乙添加新功能Bvar a = 2; var b = 1; alert(a-b);//1[3]上一步中,工程师乙在不知情的情况下,

本文实例讲解了如何避免javascript中冲突的方法,需要的朋友可以了解一下

[1]工程师甲编写功能A

[2]工程师乙添加新功能B

[3]上一步中,工程师乙在不知情的情况下,定义了同名变量a,产生冲突。于是使用匿名函数将脚本包起来,让变量作用域控制在匿名函数之内。

[4]此时有了新需求,网页中加入功能C,且需要用到功能A中的变量b。于是在window作用域下定义一个全局变量,把它作为一个桥梁,完成各匿名函数之间的通信

[5]但如果功能C还需要功能A中的变量a呢,这时就需要再定义一个全局变量

[6]但随着匿名函数之间需要通信的变量越多,需要的全局变量也就越多。因此需要严格控制全局变量的数量,使用hash对象作为全局变量,可以将需要的变量都作为对象的属性,可以保证全局变量的个数足够少,同时拓展性非常好

[7]但如果新增功能D,功能D需要和功能B通信,并使用功能B脚本中的变量a,开发功能D的是工程师丁

[8]由于工程师丁只关心自己的匿名函数和功能B的匿名函数,使用GLOBAL.str却无意中覆盖了功能A中设置的同名变量,导致功能C出错。于是使用命名空间来解决这个问题,在不同的匿名函数下,根据功能声明一个不同的命名空间,然后每个匿名函数中的GLOBAL对象的属性都不要直接挂在GLOBAL对象上,而是挂在此匿名函数的命名空间下

[9]如果同一个匿名函数中的程序非常复杂,变量名很多,命名空间还可以进一步拓展,生成二级命名空间

[10]因为生成命名空间是个非常常用的功能,进一步将生成命名空间的功能定义成一个函数,方便调用,完整版本改写后的代码如下

[11]代码的冲突问题已经解决了,但可维护性并不强。比如,现在需要让工程师甲去修改功能B。因为工程师甲写的脚本是关于功能A的,他并不知道功能B的脚本情况。为了改善这种局面,需要给代码添加适当的注释。

让javascript不再冲突,需要

  •   [1]避免全局变量的泛滥

  •   [2]合理使用命名空间

  •   [3]为代码添加必要的注释

  • 文档

    实例讲解避免javascript冲突的方法

    实例讲解避免javascript冲突的方法:本文实例讲解了如何避免javascript中冲突的方法,需要的朋友可以了解一下[1]工程师甲编写功能Avar a = 1; var b = 2; alert(a+b);//3[2]工程师乙添加新功能Bvar a = 2; var b = 1; alert(a-b);//1[3]上一步中,工程师乙在不知情的情况下,
    推荐度:
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top