一、原則
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); })();