一、1、我们探究这个问题的时候如果按照正常的思维顺序,需要知道闭包是什么它是什么意思,但是这样做会让我们很困惑,了解这个问题我们需要知道它的来源,就是我们为什么要使用闭包,先不管它是什么意思!
      2、我们使用闭包是因为js的作用域问题,前面我们已经对作用域了解了一些,在函数中,外部不能读取到内部的变量,而内部可以读取到外部的变量,这其实也是js特殊的一个地方!(这个特殊其实是因为函数的作用域是一条作用域链,而且作用域链是有顺序的,我们称之为链式作用域结构!)那么问题来了,如果我们想要从函数外部读取到局部的变量呢,那么闭包也就应运而生了!
      3、我们来举一个例子:

4、到这里我们就可以研究什么是闭包了,简单一句话:闭包就是能够读取其它函数内部变量的函数!本质上的闭包:就是函数外部和函数内部连接的桥梁!
      我们可以再深入一步的了解闭包,举例:

二、我们可以再深入一步,举例:   
      闭包中函数如果有参数怎么办?它会怎么传递?

最新文章

  1. 初识pipeline
  2. windows系统c盘占满/linux系统磁盘block、inode占满处理
  3. 手把手教你如何加入到github的开源世界!
  4. Bzoj2648 SJY摆棋子
  5. 在自定义的UINavigationController中设置背景图片
  6. php odbc连接 查询显示不完整问题
  7. Android 百度地图 SDK v3.0.0 (三) 加入覆盖Marker与InfoWindow使用
  8. Python文本编辑器推荐
  9. java中二维数组内存分配
  10. centos7 启动tomcat卡盾
  11. 【题解】 bzoj2006: [NOI2010]超级钢琴 (ST表+贪心)
  12. Web jsp开发学习——Session使用
  13. 2019.02.09 bzoj2440: [中山市选2011]完全平方数(二分答案+容斥原理)
  14. Kubernetes 简介
  15. HDU 1231 最大子序列
  16. 20155333 2016-2017-2 《Java程序设计》第七周学习总结
  17. Javascript替代eval方法
  18. MySql 双实例安装
  19. SQL Server 用链接服务器 同步SqlServer与MySQL
  20. NSUserDefaults数据存储

热门文章

  1. Fight my work!
  2. MATLAB曲面插值及交叉验证
  3. git学习(四):撤销修改和撤销删除
  4. Android传递数据5种方法
  5. 一些VS2013的使用技巧
  6. SQLSERVER JDBC 存储过程调用偶尔很慢的原因之一【sp_sproc_columns】
  7. LeetCode 344. Reverse String
  8. Codeforces Round #257 (Div. 2)
  9. jQuery技巧
  10. [BZOJ3751][NOIP2014] 解方程