JS防止全局变量污染解决方案
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防止全局变量污染解决方案的更多相关文章
- 如何减少JS的全局变量污染
A,唯一变量 B,闭包
- 防止js全局变量污染方法总结
javaScript 可以随意定义保存所有应用资源的全局变量.但全局变量可以削弱程序灵活性,增大了模块之间的耦合性.在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题 ...
- [转] 防止js全局变量污染方法总结
javaScript 可以随意定义保存所有应用资源的全局变量.但全局变量可以削弱程序灵活性,增大了模块之间的耦合性.在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题 ...
- 防止js全局变量污染方法总结-待续
javaScript 可以随意定义保存所有应用资源的全局变量.但全局变量可以削弱程序灵活性,增大了模块之间的耦合性.在多人协作时,如果定义过多的全局变量 有可能造成全局变量冲突,也就是全局变量污染问题 ...
- js设置全局变量ajax中赋值
js设置全局变量,在ajax中给予赋值赋值不上问题解决方案 方案一. //在全局或某个需要的函数内设置Ajax异步为false,也就是同步. $.ajaxSetup({async : false}); ...
- js设置全局变量 ajax中赋值
js设置全局变量,在ajax中给予赋值赋值不上问题解决方案 方案一. //在全局或某个需要的函数内设置Ajax异步为false,也就是同步. $.ajaxSetup({async : false}); ...
- angularJS 路由加载js controller 未定义 解决方案
说明 本文主要说明,在angularJS框架使用中,angularJS 路由加载js controller 未定义 解决方案. 路由 $routeProvider 异步加载js 路由的基本用法,请查看 ...
- JS传值中文乱码解决方案
JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static String ...
- PHP和JS中全局变量和局部变量
一,PHP中全局变量和局部变量 php与C++中对全局变量和局部变量定义类似,全局变量:函数外定义的变量,在全局通用:局部变量:在函数内定义的变量,只在函数内有效.PHP中变量范围跨越了include ...
随机推荐
- Codeforces 344A Magnets
Description Mad scientist Mike entertains himself by arranging rows of dominoes. He doesn't need dom ...
- webpack4强势来袭
# Webpack4## 安装> webpack 4默认不需要配置文件(它吸收了Parcel的思想,零配置)> - npm i -D webpack> - npm i -D webp ...
- angular实现简单的pagination分页组件
不想使用第三方库,只想使用一个分页器,那么就简单的实现一个,效果如下: 1.使用方式: <custom-pagination *ngIf="enterpriseList.length& ...
- 【Docker端口映射】
Docker端口映射即将容器内开放的端口映射到宿主机端口,以实现外部网络的访问. 首先,我们先下载用于测试端口映射的镜像: [root@fedora ~]# docker pull training/ ...
- IDEA 热启动,每次更改代码后不用重启服务
1.ctrl+Shift+Alt+/,选择Registry 2.勾选 compiler.automake.allow.when.app.running(可能不按首字母排序,可以多找找) 3.Setti ...
- EditPlus 使用技巧以及快捷键
一边阅读,一边动手吧! 为了达到更好的效果,请你先下载我打包的这个 EditPlus压缩包文件(压缩包文件为绿色的EditPlus2.31英文版,含自动完成文件,高亮语法文件和剪切板代码片断文件,这些 ...
- QTP校验数据库中数据后台项目
数据校验功能后台主要包含两个类:QTPCommonServlet.java和QTPCommonDao.java 当中QTPCommonServlet.java为: package com.runqia ...
- PipeCAD之管道标准库PipeStd
PipeCAD之管道标准库PipeStd eryar@163.com Key Words. PipeCAD, PipeStd, 管道设计软件,管件库 1. Introduction 前不久,两位老友徐 ...
- jquery16 DOM操作 : 添加 删除 获取 包装 DOM筛选
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- CHROME开发者工具的小技巧
我猜不能转载,但是必须分享. http://coolshell.cn/articles/17634.html