在平常的开发中,总有一些方法我们在不同的地方都有用的,因此我们会把这些方法封装起来。当我们需要在开发一个功能的时候需要用到一个组合函数(多个函数之间有联系,即有一个或多个共同的全局变量)且这个组合函数需要在多个地方被调用到。若是简单的将这个组合函数设置成全局函数其共同的变量设置为全局变量的话便会发现一个问题:我在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

最新文章

  1. JavaScript资源大全中文版(Awesome最新版)
  2. tapping of data 词义来源
  3. Beaglebone Black–GPIO 高低电平控制 LED 灯
  4. (转载)static全局变量与普通的全局变量有什么区别?
  5. 探讨NSString和NSMutableString的内存问题以及copy和MutableCopy两个方法
  6. HTML+CSS 整站 步骤
  7. PHP框架_Smarty_实现登录功能
  8. 使用MyEclipse构建MAVEN项目 - 我的漫漫程序之旅 - BlogJava
  9. redis 订阅与发布
  10. HTML5图片上传本地预览
  11. [Luogu3768]简单的数学题
  12. HTTP你真的懂了吗?
  13. 试说明采用双缓冲技术如何进行I/O操作
  14. Codeforces Round #417 (Div. 2)-A. Sagheer and Crossroad
  15. 【leetcode-100】 简单 树相关题目
  16. amcharts去除版权标志
  17. 清空库数据sql
  18. 10:处理 json
  19. 将celery定时任务设置为根据本地时区触发
  20. 怎么样入门python?来自知乎

热门文章

  1. android:activity知识点
  2. Mac 10.12安装SVN工具SmartSVM 7.6
  3. 【编程技术-Shell】AWK使用大全
  4. JWT的介绍解析
  5. Java多线程(二)同步与等待唤醒
  6. DiagnosticFormatter
  7. ie和火狐事件addEventListener()及attachEvent()区别分析
  8. Jetty 的工作原理
  9. jdbc oracle clob
  10. 学习Rails之activeAdmin