JavaScript解决命名冲突的一种方法
过程化编码
过程化编码, 表现为 定义若干函数,然后调用定义函数,
随着页面交互逻辑变化, 从简单到复杂, 定义的所有函数、和变量 都挂在 window对象上,
window对象 编程者子自定义变量名称 规模会愈来愈额庞大,在后面开发和维护的过程中,
很容易导致函数名称冲突,引起意想不到问题。
例如, 之前有个同事定义了 一个 sample 函数, N长时间后,
另一个同事又定义了一个含义不同的同名函数sample,则前以同事的代码就有问题了。
模块化方法一则
JS函数内部相当于一个小的程序空间, 其中可以定义局部化的私有 变量 和 函数, 并组织函数的调用,
调用的函数或者变量如果跟全局变量重名, 也没有关系, 调用还是函数内部的,
同时不妨碍函数内部对函数外部全局变量的访问, 然后将函数执行下,就可以保证原有一块逻辑相关性代码的执行,
并与全局变量 和 其他用使用 类似方法执行的相关代码 的对应 变量 和 函数 毫不相干,
真正实现, 各个 名称空间的纯洁性。
这种方法, 叫做 立即执行函数:
(function(){
// your code
})();
模块化JS举例
下例子,全局 和 各个模块 函数名称相同,互不影响。
<html>
<head>
<script type="text/javascript" src="./JQuery.js"></script>
<style>
</style>
</head>
<body>
<script type='text/javascript'>
/* 模块化编程测试 */ // A同事,添加全局函数
function test()
{
console.log("A test called");
}
test(); //B同事 添加局部函数
(function(){
function test()
{
console.log("B test called");
} test();
})(); // C同事
(function(){
function test()
{
console.log("C test called");
} test();
})();
</script>
</body>
</html>
JavaScript解决命名冲突的一种方法的更多相关文章
- 哈希表(一):解决hash冲突的几种方法
(一)线性探测法 线性探测法是最简单的处理冲突的方法. (1)插入元素:插入元素时,如果发生冲突,算法将从该槽位向后遍历哈希表,直到找到表中的下一个空槽,并将该值放入到空槽当中. (2)查找元素:查找 ...
- JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突
文件夹: 1.JavaScript发展史 2.JavaScript与JScript差别 3.JavaScript引入方式 4.JavaScript基本数据类型及布尔值 5.JavaScript命名规范 ...
- java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区
java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 标签: hashmaphashmap冲突解决冲突的方法冲突 2016-0 ...
- jQuery源码研究——解决命名冲突
在项目中难免不去使用多个插件,如此一来这些插件就有可能出现一样的名称,当出现同名变量时后一个将会覆盖上一个,这样的话我们就无法同时使用多个插件了. 当遇到这种情况我们可以手动去修改插件源码把它的名字改 ...
- javascript生成新标签的三种方法
javascript生成新标签的三种方法:http://www.cnblogs.com/online-link/p/6062423.html
- JavaScript中数组去重的几种方法
JavaScript中数组去重的几种方法 正常情况下,数据去重的工作一般都是由后端同事来完成的,但是前端也要掌握好处理数据的能力,万一去重的工作交给我们大前端处理,我们也不能怂呀.现在我总结了一些去重 ...
- Maven 知识点总结以及解决jar报冲突的几种方法
1.常见的命令 Compile Test Package Install Deploy Clean 2.坐标的书写规范 groupId 公司或组织域名的倒序 artifactId 项目名或模块名 ve ...
- 解决transition动画与display冲突的几种方法
如demo(如果没有显示,请查看源地址http://jsfiddle.net/ihardcoder/HNduT/2/)所示,基本的效果是在点击“Translate”按钮后,蓝色区域透明度变为0,然后隐 ...
- 解决hash冲突的三个方法
通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题.创建哈希表和查找哈希表都会遇到冲突,两种情况下解决冲突的方法应该一致.下面以创建哈希表为例,说 ...
随机推荐
- [DX11] Introduction
http://www.cnblogs.com/clayman/archive/2011/10/18/2216889.html The Beauty of DirectX 11
- GDC 2016 神秘海域4中使用Substance制作Texture
TEXTURING UNCHARTED 4: A MATTER OF SUBSTANCE 原文链接 http://www.dualshockers.com/2016/03/16/amazing-unc ...
- ThinkPHP中Xheditor编辑器报错
在使用Xheditor这个插件时..我按照他里面的domo中的方法放到自己的控制器中..出现如下问题 以下是我节选的错误提示 /index.php/admin/goods/upload/ 上传接口发生 ...
- 做了一个简易的git 代码自动部署脚本
做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08) 阅读(200 ...
- DCDC(4.5V to 23V -3.3V)
这里的电感应该用体积10*12的
- nginx安全相关设置
Nginx默认是显示版本号,隐藏 # vim nginx.conf 在http {—}里加上server_tokens off; 如: http { ……省略 server_tokens off; h ...
- design the relations
Computer Science An Overview _J. Glenn Brookshear _11th Edition A pivotal step in designing a relati ...
- java CyclicBarrier 2
//Listing 6-2. Using a Cyclic Barrier to Decompose a Task into Subtasks import java.util.concurrent. ...
- http协议(转)
主要还是为了存放状态码··· 剖析 HTTP 协议 目录 HTTP 概述 HTTP 消息结构 HTTP 请求 HTTP 响应 HTTP 状态码 参考 回到顶部 HTTP 概述 HTTP 是什么? ...
- Bootstrap 下拉菜单和滚动监听插件
一.下拉菜单 常规使用中,和组件方法一样,代码如下: //声明式用法 <div class="dropdown"> <button class="btn ...