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冲突的三个方法
通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题.创建哈希表和查找哈希表都会遇到冲突,两种情况下解决冲突的方法应该一致.下面以创建哈希表为例,说 ...
随机推荐
- FastDFS常见命令
1: 启动FastDFS tracker: ./fdfs_trackered .../tracker.conf storage: ./fdfs_storaged .../storage.conf ...
- 超实用PHP函数总结整理
超实用PHP函数总结整理 2014-12-06 分类:WEB开发.编程开发.首页精华暂无人评论 来源:月光光博客 分享到:更多8 1.PHP加密解密 PHP加密和解密函数可以用来加密一些 ...
- Rails--export csv
--controller def export_agent_impressions export_start_time = Time.parse(params[:es_time]) + 7.hours ...
- 制作支持UEFI PC的Server2008 R2系统安装U盘
下载R2系统 ISO ed2k://|file|cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x6 ...
- Scrapy入门教程
关键字:scrapy 入门教程 爬虫 Spider作者:http://www.cnblogs.com/txw1958/出处:http://www.cnblogs.com/txw1958/archive ...
- page fault rate
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION A program computes th ...
- android 设计工具栏
设计工具栏Action Bar(订制工具栏类型) 工具栏给用户提供了一种熟悉和可预测的方式来执行某种动作和操纵应用程序,但是这并不意味着它就需要和其他的应用程序看起来一样的.如果想设计工具栏以使得它能 ...
- spring mvc配置文件dispatcher-servlet.xml详解
Spring的配置文档<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="ht ...
- SQLite(快速上手版)笔记
原文 1. SQL语法关键字 关键字 描述 Create Table 创建数据表 Alter Table 修改数据表 Drop Table 删除数据表 Create Index 创建索引 Drop I ...
- (转)js的call和apply
1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call ...