【JavaScript】闭包应用之数据独立
2016-01-25 10:52
489 查看
在平常的开发中,总有一些方法我们在不同的地方都有用的,因此我们会把这些方法封装起来。当我们需要在开发一个功能的时候需要用到一个组合函数(多个函数之间有联系,即有一个或多个共同的全局变量)且这个组合函数需要在多个地方被调用到。若是简单的将这个组合函数设置成全局函数其共同的变量设置为全局变量的话便会发现一个问题:我在A功能引用了这个组合函数,引用结束后这个组合函数的全局变量global获得了一个数据a,当我们在B功能又触发了这个组合函数,全局变量global被修改成了b,如此而来,当我们便失去了数据a。运用闭包的方法能够很好的解决这个问题,例子如下:
//代码实现两个各种“独立”的计数器 function createCounter() { var counter = 0; return function () { counter ++; console.log("Number of events: " + counter); } } var counter1 = createCounter(); var counter2 = createCounter(); counter1();//Number of events: 1 counter1();//Number of events: 2 counter2();//Number of events: 1 counter1();//Number of events: 3
相关文章推荐
- jackson 实体转json 为NULL或者为空不参加序列化
- 理解js对象继承的N种模式
- 【ExtJS4学习笔记03】Ajax远程访问数据源示例
- Arc gis api for js比例尺,书签
- JavaScript学习笔记
- 解决js函数闭包内存泄露问题的办法
- JS ready和onload事件 比较分析
- JavaScript操作符
- JavaScript数据类型
- JavaScript语法
- JavaScript学习 六、函数表达式
- 在 HTML 中使用JavaScript
- JavaScript 函数调用
- JavaScript概述
- js数字金额格式转换函数
- underscorejs-reduceRight学习
- js后退一直停留在当前页面或者禁止后退
- underscorejs-reduce学习
- JavaScript数据类型学习笔记
- js阿拉伯变成中文数字