避免JS全局变量冲突
一、原则
1.1 用匿名函数将脚本包起来
1.2 使用命名空间(多级)
二、改进过程
2.1 原始数据(a.js和b.js都有全局变量window.a,导致冲突,全局变量属于window)
//a.js
<script type="text/javascript"> var a=123,b="hello world"; </script> //b.js <script type="text/javascript"> var a,c="abc"; </script>
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); })();
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。