45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > javascript >

避免JS全局变量冲突

电脑软硬件应用网 45IT.COM 时间:2014-08-18 15:06 作者:未知

一、原则

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

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识