前端web学习之路(一) 避免js冲突
来源:互联网 发布:last game 软件 编辑:程序博客网 时间:2024/05/02 02:02
接触前端已经有一段时间了现在写写关于前端js编程的总结吧
一、避免js冲突
首先说说变量命名的冲突,一般多为全局变量,当一个html文件中引入多个js文件时而每个js文件中有相同的变量的时候则会发生冲突:后引入js文件的变量会覆盖前面存在的。
解决办法如下:
1、 一种简单有效的方法就是用匿名函数把脚本包起来,让变量的作用域在匿名函数之内,写法如下:
Function(){
//代码
}()
这是一种很巧妙的形式首先定义了一个匿名的function然后立即调用。
Ps:用匿名函数把脚本包起来,可以有效控制全局变量,避免冲突。
好的 看起来这是很好的解决办法 是不是?现在假设假设A程序员写了一个脚本,然后B程序员想调用A程序员写的脚本里面定义的变量。但是在这种通过匿名函数包裹起来的方式下,是行不通的。这个时候我们应该想想别的对策。
2、 我们可以使用全局作用域变量来传递需要跨脚本的变量,我们可以在添加全局变量,但是我们要考虑到全句变量的数量问题,所以我们采用hash对象作为全局变量。如下形式:
var GLOBAL={};
//添加的变量方法如下
GLOBAL.str=”xxx”;
这样就可以添加全局变量了
但是在想想要是有很多程序员一起工作每个都添加全局变量那么还是回冲突的所以我么应该设置一个方法用来检测该全局变量是否存在同时存在并且是否重复挂载在GlOBAL下面。
3、 在这里我们引进命名空间的说法,即每个程序员在写自己的脚本的时候都为自己命名一个命名空间把需要传递的变量挂载在这下面。
下面是使用命名空间解决冲突的完整代码:
var GLOBAL={};
GLOBAL.namespace=function(str){
var arr=str.split(“.”),0=CLOBAL;
for(i=(arr[0] == “GLOBAL”)?1 : 0; I <arr.length; i++){
o[arr[[i]] = o[arr[i]] || {};
o =o[arr[i]];
}
}
ps:添加必要的注释,可以大大提高代码的可维护性,对于团队合作来说更是十分有必要。
通过合理的添加注释以及使用命名空间,可以很好的避免js冲突。
- 前端web学习之路(一) 避免js冲突
- web前端学习之路(一)
- web前端学习(一)
- 从零开始,学习web前端之js基础
- 从零开始,学习web前端之js特效
- 从零开始,学习web前端之js高级
- web开发之js学习(一)
- 学习web前端之练习一
- Web前端学习——JS基础一之DIV格式变换
- 前端web学习之路(五) js一些经典问题
- WEB前端学习之路
- web前端学习之路
- web前端学习之路
- Web前端学习【一】
- 前端进阶学习之路(一)
- 前端学习之路(一)
- 学习前端之路(一)
- 前端学习之路(一)
- 从12306火车购票网站谈海量事务高速处理系统
- tomcat6.0设置成windows服务启动与一台机器装多个tomcat
- 在 ACM竞赛中,为什么美国的公认的计算机名校,如 MIT,斯坦福、加州伯克利、卡内基梅隆,表现不如中国和俄罗斯的高校?
- 2014年公益收房验房活动火热召集中!陪你走过放心装修路!
- hibernate一对多配置
- 前端web学习之路(一) 避免js冲突
- 【计算机应用基础】 选择题目标准答案
- 修改字段类型
- hbase备份恢复
- 中国汽车品牌口碑榜之:--2013年第3季度广州豪华车综合口碑排名
- 就是想到什么记录什么,等同于随身的小笔记本 最好不要看,评论也不要有
- CRC32直接计算法计算字符串校验值示例(VC++)
- 关于Linux系统中“目录项”的解释
- android UI 开源组件