萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> 避免JS全局變量沖突

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

copyright © 萬盛學電腦網 all rights reserved