JavaScript变量污染
时间:2019-11-10
本文章向大家介绍JavaScript变量污染,主要包括JavaScript变量污染使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
定义过多的全局变量,有可能造成全局变量冲突,这种现象称为变量污染。
全局变量在全局作用域内外都是可见的。若是已经声明了一个全局变量,再以相同的关键字和标识符重新声明全局变量,后者的赋值会替代前者的赋值。特别是在多人协作时,若大量使用全局变量,全局变量的这种行为会降低程序的可靠性。
降低JavaScript变量污染的核心就是减少全局变量,基于这个理念,可以将在脚本中创建一个全局变量,作为当前应用的唯一接口,然后通过对象直接量的形式包含所有应用程序变量。
方式一:通过立即执行函数封装应用体。
(function (window) { var MyAPP = {}; //定义 APP 访问接口 MyAPP.name = { //定义APP配置变量 "id": "应用程序的ID编号" }; MyAPP.work = { num: 123, //APP计数器等内部属性 sub: { name: "sub_id" }, //APP 应用分支 doing: function () { //具体方法 //执行代码 } }; window.MyAPP=MyAPP; //对外开放应用程序接口 })(window) console.log(MyAPP.name);
方式二:
var MyAPP = {}; //定义 APP 访问接口 MyAPP.name = { //定义APP配置变量 "id": "应用程序的ID编号" }; MyAPP.work = { num: 123, //APP计数器等内部属性 sub: { name: "sub_id" }, //APP应用分支 doing: function () { //具体方法 //执行代码 } }; console.log(MyAPP.name);
原文地址:https://www.cnblogs.com/f6056/p/11831370.html
- Jsoup(一)Jsoup详解(官方)
- Ajax几种常用模式
- dubbox升级spring到4.x及添加log4j2支持
- CSS魔法堂:Absolute Positioning就这个样
- MongoDB(一)环境搭建与初始配置
- AI进了直播间,这画风666
- CSS布局:水平居中
- docker学习(4) 一些常用操作
- Java多线程之细说线程池
- Windows8异步编程的注意事项
- Spring(一)Spring的第一滴血
- Flume(一)Flume原理解析
- 我所理解的Remoting (2) :远程对象的生命周期管理[下篇]
- struts2(六)之ognl表达式与ActionContext、ValueStack
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 写给初中级前端的高级进阶指南
- 为什么 Vue 中不要用 index 作为 key?(diff 算法详解)
- Vue3 的响应式和以前有什么区别,Proxy 无敌?
- 腾讯云TKE-PV使用cos存储案例: 容器目录权限问题
- Vue3 究竟好在哪里?(和 React Hook 的详细对比)
- 前端「N皇后」递归回溯经典问题图解
- 深入 TypeScript 中的子类型、逆变、协变,进阶 Vue3 源码前必须搞懂的。
- Vue3 + TypeScript 实现递归菜单组件
- TypeScript 4.1 新特性:字符串模板类型,Vuex 终于有救了?
- TS 4.1 新特性实现 Vuex 无限层级命名空间的 dispatch 类型推断。
- egg.js踩坑记录(一)开始篇
- VUI创建日志(二)——防抖节流组件的实现
- 为你的VuePress博客添加GitTalk评论
- Go 中 Set 的实现方式
- Go 译文之词法分析与解析 Part Three