闭包就是能够读取其他函数内部变量的函数。

在javascript中,只有函数内部的子函数可以读取局部变量,因此,我理解闭包就是定义在一个函数内部的函数。

例子:

var f1 = function() {
var n = 100;
var f2 = function() {
return n;
}
return f2();
}
var s = f1(); console.error(n + 1);

由于n是定义在f1内部的局部变量,因此外部的n是未定义的,会出错

var f1 = function() {
var n = 100;
var f2 = function() {
return n;
}
return f2();
}
var s = f1(); console.notice(s + 1);

通过闭包函数f2,局部变量n就可以在外部取到。

其实熟悉了以后,闭包就是匿名函数,然后被它的外部函数作为返回值传出来,就可以在外部取到局部变量了

闭包的作用除了前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

闭包不能乱用,因为其变量一直保持在内存中,因此内存消耗会比较大。

最新文章

  1. java的基础知识运算符
  2. IDEA 搭建自己的第一个 SpringMvc Hello Word
  3. inside the C++ Object model总结
  4. 【NoSql】Redis
  5. c# Json Dictionary序列化和反序列化
  6. oracle sqlplus及常用sql语句
  7. MVC linq To SQL更新数据库操作
  8. 【Oracle】安装
  9. mysql union ,UNION RESULT
  10. SpringMVC简单配置
  11. QuietHit小Game
  12. JOISC2019 游记
  13. ps入门学习
  14. flask狗书
  15. 【ISC安全训练营】挑战价格极限第三天!!![北京]
  16. 【IIS错误】未能加载文件或程序集“AAAAA”或它的某一个依赖项。试图加载格式不正确的程序。
  17. 分享插件的使用加一个echart走数据
  18. JAVA笔试准备
  19. 自定义控件之万能Repeater源码
  20. CAT偶现NPE的问题

热门文章

  1. AspNetPager控件分页使用方法
  2. Hive的内表和外表以及分区表
  3. 安装R语言扩展包diveRsity-1
  4. 为PHP安装两个扩展,memcache和Redis
  5. MMU内存管理单元相关知识点总结
  6. css声明应用优先级
  7. React Native 的绑定 this
  8. 【Fine原创】常见的HTTP错误码的具体含义整理
  9. java 对象 :创建
  10. windows下开启mysql表名大小限制