1.目前出现的问题:

  a.随意使用全局变量,会存在冲突的风险和难以解决的问题。

  b.现有JS代码共享流程中的状态,参数,都是通过按钮传递,非常别扭,不易于管理。

  c.通过完成后的代码很难知晓业务流程,很蹩脚。

2.目前的代码方案优点:

  a.代码的公共参数、公共函数一目了然,复用也简单。

  b.可以根据业务板块划分代码模块,耦合性非常低。

  c.用JS的对象逻辑实现了代码“包”的概念。

3.具体方案:

3.1 //1)避免污染 2)可以互相取到值。var myInfo = {};myInfo.name = {    smallName: "小七",

    bigName: "张国彪"
};
myInfo.myWork = {
jog: function(){
console.log("Codeing");
},
myLike: function(){
console.log("读书,旅游");
},
jiaoSmallName: function(){
console.log(this);
console.log(myInfo.name.smallName);//这样就可以取到想要的参数了。
}
}; myInfo.myWork.jog();
myInfo.myWork.myLike();
console.log("我的小名:" + myInfo.name.smallName);
myInfo.myWork.jiaoSmallName() 3.2利用匿名函数将脚本包裹起来(适用于一小段代码)
(function(){
  console.log("Hello World!");
})();

4.可以通过给模块增加extends来增加与其他模块的通信。

5.解决方案在代码实践中的细节技巧积累:

  /*PC版会员改版支付流程*/

  a.index()函数获取自己想要的索引值,在支付弹窗点击价格条出现不同二维码。

  b.严格按照理清需求,按模块划分“包”,按流程步骤划分具体函数。



JS防止全局变量污染解决方案的更多相关文章

  1. 如何减少JS的全局变量污染

    A,唯一变量 B,闭包

  2. 防止js全局变量污染方法总结

    javaScript 可以随意定义保存所有应用资源的全局变量.但全局变量可以削弱程序灵活性,增大了模块之间的耦合性.在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题 ...

  3. [转] 防止js全局变量污染方法总结

    javaScript 可以随意定义保存所有应用资源的全局变量.但全局变量可以削弱程序灵活性,增大了模块之间的耦合性.在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题 ...

  4. 防止js全局变量污染方法总结-待续

    javaScript 可以随意定义保存所有应用资源的全局变量.但全局变量可以削弱程序灵活性,增大了模块之间的耦合性.在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题 ...

  5. js设置全局变量ajax中赋值

    js设置全局变量,在ajax中给予赋值赋值不上问题解决方案 方案一. //在全局或某个需要的函数内设置Ajax异步为false,也就是同步. $.ajaxSetup({async : false}); ...

  6. js设置全局变量 ajax中赋值

    js设置全局变量,在ajax中给予赋值赋值不上问题解决方案 方案一. //在全局或某个需要的函数内设置Ajax异步为false,也就是同步. $.ajaxSetup({async : false}); ...

  7. angularJS 路由加载js controller 未定义 解决方案

    说明 本文主要说明,在angularJS框架使用中,angularJS 路由加载js controller 未定义 解决方案. 路由 $routeProvider 异步加载js 路由的基本用法,请查看 ...

  8. JS传值中文乱码解决方案

    JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static  String ...

  9. PHP和JS中全局变量和局部变量

    一,PHP中全局变量和局部变量 php与C++中对全局变量和局部变量定义类似,全局变量:函数外定义的变量,在全局通用:局部变量:在函数内定义的变量,只在函数内有效.PHP中变量范围跨越了include ...

随机推荐

  1. Android ViewPager实现多个图片水平滚动

    1.示意图                       2.实现分析 (1).xml配置 <!-- 配置container和pager的clipChildren=false, 并且指定margi ...

  2. UVA Building designing

    题目总结来说求一段序列,必须正负交替,且绝对值递增 #include <iostream> #include <cstdio> #include <cstring> ...

  3. angularjs之手机输入法回车变搜索,并触发事件,兼容pc回车事件

    一.效果:回车按钮变搜索 之前的输入法: 之后的输入法: 二.功能实现 <input type="search" id="search_input" pl ...

  4. PHP如何去掉多维数组的重复值

    1.定义函数 function array_unique_new($arr){ $t = array_map('serialize', $arr);//利用serialize()方法将数组转换为以字符 ...

  5. BZOJ——1012: [JSOI2008]最大数maxnumber || 洛谷—— P1198 [JSOI2008]最大数

    http://www.lydsy.com/JudgeOnline/problem.php?id=1012|| https://www.luogu.org/problem/show?pid=1198 T ...

  6. Android资源推荐

    Intellj IDEA 安装配置 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程) Android设计指南站点 图标 App Icon Template免费的Photo ...

  7. Inversion of Control Containers and the Dependency Injection pattern--Martin Fowler

    原文地址:https://martinfowler.com/articles/injection.html n the Java community there's been a rush of li ...

  8. 洛谷P2192 HXY玩卡片

    题目描述 HXY得到了一些卡片,这些卡片上标有数字0或5.现在她可以选择其中一些卡片排成一列,使得排出的一列数字组成的数最大,且满足被90整除这个条件.同时这个数不能含有前导0,即0不能作为这串数的首 ...

  9. 在Red Hat Linux服务器端假设NSF Server来进行Linux系统安装全过程

            本教程讲述了通过在Red Hat Linux服务器端假设NSF Server来进行Linux系统安装的过程,并详细介绍了如何制作网络启动盘的细节.演示直观,讲解通俗易懂,特别适合初学者 ...

  10. vue 中表单 [v-bind:true-value="a" v-bind:false-value="b"] 的用法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...