避免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);
})();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM