过程化编码

  过程化编码, 表现为 定义若干函数,然后调用定义函数,

随着页面交互逻辑变化, 从简单到复杂, 定义的所有函数、和变量 都挂在 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解决命名冲突的一种方法的更多相关文章

  1. 哈希表(一):解决hash冲突的几种方法

    (一)线性探测法 线性探测法是最简单的处理冲突的方法. (1)插入元素:插入元素时,如果发生冲突,算法将从该槽位向后遍历哈希表,直到找到表中的下一个空槽,并将该值放入到空槽当中. (2)查找元素:查找 ...

  2. JavaScript发展史,与JScript差别,引入方式,数据类型,命名规范,命名推荐,解决命名冲突

    文件夹: 1.JavaScript发展史 2.JavaScript与JScript差别 3.JavaScript引入方式 4.JavaScript基本数据类型及布尔值 5.JavaScript命名规范 ...

  3. java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测)、链地址法、再哈希、建立公共溢出区

    java 解决Hash(散列)冲突的四种方法--开放定址法(线性探测,二次探测,伪随机探测).链地址法.再哈希.建立公共溢出区 标签: hashmaphashmap冲突解决冲突的方法冲突 2016-0 ...

  4. jQuery源码研究——解决命名冲突

    在项目中难免不去使用多个插件,如此一来这些插件就有可能出现一样的名称,当出现同名变量时后一个将会覆盖上一个,这样的话我们就无法同时使用多个插件了. 当遇到这种情况我们可以手动去修改插件源码把它的名字改 ...

  5. javascript生成新标签的三种方法

    javascript生成新标签的三种方法:http://www.cnblogs.com/online-link/p/6062423.html

  6. JavaScript中数组去重的几种方法

    JavaScript中数组去重的几种方法 正常情况下,数据去重的工作一般都是由后端同事来完成的,但是前端也要掌握好处理数据的能力,万一去重的工作交给我们大前端处理,我们也不能怂呀.现在我总结了一些去重 ...

  7. Maven 知识点总结以及解决jar报冲突的几种方法

    1.常见的命令 Compile Test Package Install Deploy Clean 2.坐标的书写规范 groupId 公司或组织域名的倒序 artifactId 项目名或模块名 ve ...

  8. 解决transition动画与display冲突的几种方法

    如demo(如果没有显示,请查看源地址http://jsfiddle.net/ihardcoder/HNduT/2/)所示,基本的效果是在点击“Translate”按钮后,蓝色区域透明度变为0,然后隐 ...

  9. 解决hash冲突的三个方法

    通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题.创建哈希表和查找哈希表都会遇到冲突,两种情况下解决冲突的方法应该一致.下面以创建哈希表为例,说 ...

随机推荐

  1. 《Java核心技术卷二》笔记(一)流与文件

    一.流的概念 在Java中,可以提供字节序列的对象,或者可以接收字节序列的对象,都可以抽象成流.系统中的文件,网络,内存这些设备都可以读入或者写入字节,自然也可以用流的方式来操作.能向程序中提供字节序 ...

  2. DX11.2 Tiled Resource Pool

    Nvidia white paper : https://developer.nvidia.com/content/taking-advantage-directx112-tiled-resource ...

  3. Redis学习手册(Key操作命令)

    一.概述: 在该系列的前几篇博客中,主要讲述的是与Redis数据类型相关的命令,如String.List.Set.Hashes和Sorted-Set.这些命 令都具有一个共同点,即所有的操作都是针对与 ...

  4. laravel 查看SQL语句

    Route::get('/test-sql', function(){ DB::enableQueryLog(); $user = App\User::first(); return DB::getQ ...

  5. mysqli_query($link,'SET group_concat_max_len=8192');

    mysqli_query($link,'SET group_concat_max_len=8192'); $sql = 'SELECT GROUP_CONCAT(w) FROM ---'; mysql ...

  6. The Dataflow Model 论文

    A Practical Approach to Balancing Correctness, Latency, and Cost in MassiveScale, Unbounded, OutofOr ...

  7. Kafka可靠性的思考

    首先kafka的throughput 很牛逼,参考:http://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million- ...

  8. ADS报错 Warning : L6301W:Could not find file C:\Program Files . Error : L6218 : Undefined symbol ......

    ADS1.2编译时,出现找不到一个不存在目录下的目标文件(*.o) 编译一个COPY到硬盘上的一个工程,出现以下的fatal error message: Error: (Fatal)L6002: C ...

  9. C语言PRO2

    2-5 #include<stdio.h>#include<math.h>int main(){ int money , year; double rate , sum; pr ...

  10. node express 学习1

    参考链接https://cnodejs.org/topic/55ece31004e2cdb230671c50 express-session connect-nongo mongoose 1.安装mo ...