博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
避免JS全局变量冲突
阅读量:6350 次
发布时间:2019-06-22

本文共 623 字,大约阅读时间需要 2 分钟。

一、原则
1.1 用匿名函数将脚本包起来
1.2 使用命名空间(多级)

二、改进过程

2.1 原始数据(a.js和b.js都有全局变量window.a,导致冲突,全局变量属于window)

//a.js //b.js

 

2.2 使用匿名函数(a.js和b.js中的a都不是全局变量,但是b.js中无法访问a.js中的b,没办法通信)

//a.js(function(){var a=123,b="hello world";})();//b.js(function(){var a,c="abc";})();

 

2.3 使用全局变量进行通信(使用window.str作为全局变量,会导致全局变量越来越好,不好维护)

var str;//a.js(function(){var a=123,b="hello world";window.str=a;})();//b.js(function(){var a,c="abc";alert(window.str);})();

 

2.4 使用命名空间

var GLOBAL={};//a.js(function(){var a=123,b="hello world";GLOBAL.A.a=a;})();//b.js(function(){var a,c="abc";alert(GLOBAL.A.a);})();

转载于:https://www.cnblogs.com/gossip/p/3859151.html

你可能感兴趣的文章
||和 && 符号的赋值运用(转)
查看>>
post提交返回json格式
查看>>
Java.lang 包中的Void类型
查看>>
正确理解linux grep 的姿势
查看>>
Nhibernate 使用 (一)
查看>>
【转】Android APK的数字签名的作用和意义
查看>>
C++ Primer 有感(标准库map类型)
查看>>
(23)Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】
查看>>
Android ImageView加载圆形图片且同时绘制圆形图片的外部边缘边线及边框
查看>>
链表的反转
查看>>
动态从数据库获取数据(Vue.js)【数据可变】
查看>>
操作linux命令
查看>>
转载]typedef struct和struct的区别
查看>>
数据仓库、数据整合、ETL、ELT和EII之间的区别?
查看>>
c++ 注册表操作dll动态调用
查看>>
C#开发人员应该知道的13件事情
查看>>
工厂模式(Factory)
查看>>
Linux 虚拟地址与物理地址的映射关系分析【转】
查看>>
GNU make manual 翻译(三十七)
查看>>
自动化测试框架的搭建
查看>>